@@ -8,13 +8,13 @@ import {
8
8
} from "../../../support/pageObjects/page-obj" ;
9
9
import { Common , setupBrowser } from "../../../utils/common" ;
10
10
import { UIhelper } from "../../../utils/ui-helper" ;
11
- import fs from "fs/promises" ;
12
11
import { RbacPo } from "../../../support/pageObjects/rbac-po" ;
13
12
import { RhdhAuthApiHack } from "../../../support/api/rhdh-auth-api-hack" ;
14
13
import RhdhRbacApi from "../../../support/api/rbac-api" ;
15
14
import { RbacConstants } from "../../../data/rbac-constants" ;
16
15
import { Policy } from "../../../support/api/rbac-api-structures" ;
17
16
import { CatalogImport } from "../../../support/pages/catalog-import" ;
17
+ import { downloadAndReadFile } from "../../../utils/helper" ;
18
18
19
19
/*
20
20
Note that:
@@ -226,7 +226,10 @@ test.describe.serial("Test RBAC", () => {
226
226
227
227
test ( "Should download the user list" , async ( { page } ) => {
228
228
await page . locator ( 'a:has-text("Download User List")' ) . click ( ) ;
229
- const fileContent = await downloadAndReadFile ( page ) ;
229
+ const fileContent = await downloadAndReadFile (
230
+ page ,
231
+ 'a:has-text("Download User List")' ,
232
+ ) ;
230
233
const lines = fileContent . trim ( ) . split ( "\n" ) ;
231
234
232
235
const header = "userEntityRef,displayName,email,lastAuthTime" ;
@@ -243,25 +246,6 @@ test.describe.serial("Test RBAC", () => {
243
246
}
244
247
} ) ;
245
248
246
- async function downloadAndReadFile (
247
- page : Page ,
248
- ) : Promise < string | undefined > {
249
- const [ download ] = await Promise . all ( [
250
- page . waitForEvent ( "download" ) ,
251
- page . locator ( 'a:has-text("Download User List")' ) . click ( ) ,
252
- ] ) ;
253
-
254
- const filePath = await download . path ( ) ;
255
-
256
- if ( filePath ) {
257
- const fileContent = await fs . readFile ( filePath , "utf-8" ) ;
258
- return fileContent ;
259
- } else {
260
- console . error ( "Download failed or path is not available" ) ;
261
- return undefined ;
262
- }
263
- }
264
-
265
249
test ( "View details of a role" , async ( { page } ) => {
266
250
const uiHelper = new UIhelper ( page ) ;
267
251
await uiHelper . clickLink ( "role:default/rbac_admin" ) ;
@@ -293,7 +277,6 @@ test.describe.serial("Test RBAC", () => {
293
277
test ( "Create and edit a role from the roles list page" , async ( {
294
278
page,
295
279
} ) => {
296
- const rolesHelper = new Roles ( page ) ;
297
280
const uiHelper = new UIhelper ( page ) ;
298
281
299
282
await uiHelper . clickButton ( "Create" ) ;
@@ -325,11 +308,12 @@ test.describe.serial("Test RBAC", () => {
325
308
326
309
const rbacPo = new RbacPo ( page ) ;
327
310
const testUser = "Jonathon Page" ;
328
- await rbacPo . createRole ( "test-role" , [
329
- RbacPo . rbacTestUsers . guest ,
330
- RbacPo . rbacTestUsers . tara ,
331
- RbacPo . rbacTestUsers . backstage ,
332
- ] ) ;
311
+ await rbacPo . createRole (
312
+ "test-role" ,
313
+ [ RbacPo . rbacTestUsers . guest , RbacPo . rbacTestUsers . tara ] ,
314
+ [ RbacPo . rbacTestUsers . backstage ] ,
315
+ [ { permission : "catalog.entity.delete" } ] ,
316
+ ) ;
333
317
await page . click (
334
318
ROLES_PAGE_COMPONENTS . editRole ( "role:default/test-role" ) ,
335
319
) ;
@@ -361,20 +345,20 @@ test.describe.serial("Test RBAC", () => {
361
345
await usersAndGroupsLocator . waitFor ( ) ;
362
346
await expect ( usersAndGroupsLocator ) . toBeVisible ( ) ;
363
347
364
- await rolesHelper . deleteRole ( "role:default/test-role" ) ;
348
+ await rbacPo . deleteRole ( "role:default/test-role" ) ;
365
349
} ) ;
366
350
367
351
test ( "Edit users and groups and update policies of a role from the overview page" , async ( {
368
352
page,
369
353
} ) => {
370
- const rolesHelper = new Roles ( page ) ;
371
354
const uiHelper = new UIhelper ( page ) ;
372
355
const rbacPo = new RbacPo ( page ) ;
373
- await rbacPo . createRole ( "test-role1" , [
374
- RbacPo . rbacTestUsers . guest ,
375
- RbacPo . rbacTestUsers . tara ,
376
- RbacPo . rbacTestUsers . backstage ,
377
- ] ) ;
356
+ await rbacPo . createRole (
357
+ "test-role1" ,
358
+ [ RbacPo . rbacTestUsers . guest , RbacPo . rbacTestUsers . tara ] ,
359
+ [ RbacPo . rbacTestUsers . backstage ] ,
360
+ [ { permission : "catalog.entity.delete" } ] ,
361
+ ) ;
378
362
379
363
await uiHelper . searchInputAriaLabel ( "test-role1" ) ;
380
364
@@ -423,17 +407,18 @@ test.describe.serial("Test RBAC", () => {
423
407
) ;
424
408
await uiHelper . verifyHeading ( "Permission Policies (2)" ) ;
425
409
426
- await rolesHelper . deleteRole ( "role:default/test-role1" ) ;
410
+ await rbacPo . deleteRole ( "role:default/test-role1" ) ;
427
411
} ) ;
428
412
429
413
test ( "Create a role with a permission policy per resource type and verify that the only authorized users can access specific resources." , async ( {
430
414
page,
431
415
} ) => {
432
- const rolesHelper = new Roles ( page ) ;
433
416
const uiHelper = new UIhelper ( page ) ;
434
- await new RbacPo ( page ) . createRole (
417
+ const rbacPo = new RbacPo ( page ) ;
418
+ await rbacPo . createConditionalRole (
435
419
"test-role1" ,
436
- [ "Guest User" , "rhdh-qe" , "Backstage" ] ,
420
+ [ "Guest User" , "rhdh-qe" ] ,
421
+ [ "Backstage" ] ,
437
422
"anyOf" ,
438
423
) ;
439
424
@@ -444,7 +429,7 @@ test.describe.serial("Test RBAC", () => {
444
429
. locator ( SEARCH_OBJECTS_COMPONENTS . ariaLabelSearch )
445
430
. fill ( "test-role1" ) ;
446
431
await uiHelper . verifyHeading ( "All roles (1)" ) ;
447
- await rolesHelper . deleteRole ( "role:default/test-role1" ) ;
432
+ await rbacPo . deleteRole ( "role:default/test-role1" ) ;
448
433
} ) ;
449
434
} ) ;
450
435
0 commit comments