@@ -3,8 +3,9 @@ import { navigateToRepositories } from './helpers/navHelpers';
3
3
import { deleteAllRepos } from './helpers/deleteRepositories' ;
4
4
import { closePopupsIfExist , getRowByNameOrUrl } from './helpers/helpers' ;
5
5
import { logInWithUsernameAndPassword , logout , logInWithUser1 } from "../helpers/loginHelpers" ;
6
+ import { randomUrl } from './helpers/repoHelpers' ;
6
7
7
- export const url = `https://stephenw.fedorapeople.org/centirepos/repo99/` ;
8
+ export const url = randomUrl ( ) ;
8
9
9
10
export const repoNamePrefix = 'Repo-RBAC' ;
10
11
export const randomName = ( ) => ( Math . random ( ) + 1 ) . toString ( 36 ) . substring ( 2 , 6 ) ;
@@ -14,7 +15,7 @@ test.describe('User Permissions Test', () => {
14
15
test ( 'Default user configures repo' , async ( { browser } ) => {
15
16
const context = await browser . newContext ( { storageState : '.auth/default_user.json' } ) ;
16
17
const page = await context . newPage ( ) ;
17
- await deleteAllRepos ( page , `&search=${ repoNamePrefix } ` ) ;
18
+ // await deleteAllRepos(page, `&search=${repoNamePrefix}`);
18
19
await navigateToRepositories ( page ) ;
19
20
await closePopupsIfExist ( page ) ;
20
21
@@ -53,27 +54,20 @@ test.describe('User Permissions Test', () => {
53
54
} ) ;
54
55
55
56
test ( 'Read-only user can view but not edit' , async ( { browser } ) => {
56
- const context = await browser . newContext ( { storageState : { cookies : [ ] , origins : [ ] } } ) ;
57
+ const context = await browser . newContext ( { storageState : '.auth/readonly_user.json' } ) ;
57
58
const page = await context . newPage ( ) ;
58
- // Read-only user login
59
- await page . context ( ) . clearCookies ( ) ;
60
- await logInWithUsernameAndPassword ( page , process . env . RO_USER_USERNAME ! , process . env . RO_USER_PASSWORD ! ) ;
61
59
await navigateToRepositories ( page ) ;
62
60
await closePopupsIfExist ( page ) ;
63
61
64
62
// Assert read-only user can list but not edit previously created repo
65
- await expect ( page . getByRole ( 'button' , { name : 'Add repositories' , exact : true } ) ) . not . toBeEnabled ( ) ;
66
- // Search for the created repo
67
- await page . getByRole ( 'textbox' , { name : 'Filter by name/url' } ) . fill ( repoName ) ;
68
63
const row = await getRowByNameOrUrl ( page , repoName ) ;
69
64
await expect ( row . getByText ( 'Valid' ) ) . toBeVisible ( ) ;
70
65
await row . getByLabel ( 'Kebab toggle' ) . click ( ) ;
71
66
// Assert we cannot click on the Edit button to see the repo
72
- // You do not have the required permissions to perform this action.
73
- await row . getByRole ( 'menuitem' , { name : 'Edit' } ) . click ( ) ;
74
- await expect ( page . getByText ( 'You do not have the required permissions to perform this action' ) ) . toBeVisible ( ) ;
75
- await expect ( page . getByRole ( 'dialog' , { name : 'Edit custom repository' } ) ) . not . toBeVisible ( ) ;
76
-
77
- await context . close ( ) ;
78
- } ) ;
67
+ await expect ( row . locator ( ".pf-v5-c-menu__list" ) ) . toBeVisible ( { timeout : 5000 } ) ; // Confirm menu is open
68
+ await expect ( row . getByRole ( "menuitem" , { name : "Edit" } ) ) . not . toBeVisible ( { timeout : 1000 } ) ;
69
+ // You do not have the required permissions to perform this action.
70
+ const repoButton = page . getByRole ( 'button' , { name : 'Add repositories' , exact : true } ) ;
71
+ await expect ( repoButton ) . toBeDisabled ( ) ; // Verify button is disabled
72
+ } ) ;
79
73
} ) ;
0 commit comments