@@ -7,24 +7,89 @@ import { LoginPage } from '../fixtures/loginPage';
77import products from '../products.json' ;
88import users from '../users.json' ;
99
10- const userMenuButtonsPerRole = {
10+ const userMenuButtons = {
11+ "osparc" : {
12+ "userMenuMyAccountBtn" : true ,
13+ "userMenuBillingCenterBtn" : false ,
14+ "userMenuPreferencesBtn" : true ,
15+ "userMenuOrganizationsBtn" : true ,
16+ "userMenuThemeSwitcherBtn" : true ,
17+ "userMenuAboutBtn" : true ,
18+ "userMenuAboutProductBtn" : true ,
19+ "userMenuAccessTIPBtn" : false ,
20+ "userMenuLogoutBtn" : true ,
21+ } ,
22+ "s4l" : {
23+ "userMenuMyAccountBtn" : true ,
24+ "userMenuBillingCenterBtn" : true ,
25+ "userMenuPreferencesBtn" : true ,
26+ "userMenuOrganizationsBtn" : true ,
27+ "userMenuThemeSwitcherBtn" : true ,
28+ "userMenuAboutBtn" : true ,
29+ "userMenuAboutProductBtn" : true ,
30+ "userMenuAccessTIPBtn" : false ,
31+ "userMenuLogoutBtn" : true ,
32+ } ,
33+ "s4lacad" : {
34+ "userMenuMyAccountBtn" : true ,
35+ "userMenuBillingCenterBtn" : true ,
36+ "userMenuPreferencesBtn" : true ,
37+ "userMenuOrganizationsBtn" : true ,
38+ "userMenuThemeSwitcherBtn" : true ,
39+ "userMenuAboutBtn" : true ,
40+ "userMenuAboutProductBtn" : true ,
41+ "userMenuAccessTIPBtn" : false ,
42+ "userMenuLogoutBtn" : true ,
43+ } ,
44+ "s4llite" : {
45+ "userMenuMyAccountBtn" : true ,
46+ "userMenuBillingCenterBtn" : true ,
47+ "userMenuPreferencesBtn" : true ,
48+ "userMenuOrganizationsBtn" : true ,
49+ "userMenuThemeSwitcherBtn" : true ,
50+ "userMenuAboutBtn" : true ,
51+ "userMenuAboutProductBtn" : true ,
52+ "userMenuAccessTIPBtn" : false ,
53+ "userMenuLogoutBtn" : true ,
54+ } ,
55+ "tis" : {
56+ "userMenuMyAccountBtn" : true ,
57+ "userMenuBillingCenterBtn" : true ,
58+ "userMenuPreferencesBtn" : true ,
59+ "userMenuOrganizationsBtn" : true ,
60+ "userMenuThemeSwitcherBtn" : true ,
61+ "userMenuAboutBtn" : true ,
62+ "userMenuAboutProductBtn" : true ,
63+ "userMenuAccessTIPBtn" : false ,
64+ "userMenuLogoutBtn" : true ,
65+ } ,
66+ "tiplite" : {
67+ "userMenuMyAccountBtn" : true ,
68+ "userMenuBillingCenterBtn" : true ,
69+ "userMenuPreferencesBtn" : true ,
70+ "userMenuOrganizationsBtn" : true ,
71+ "userMenuThemeSwitcherBtn" : true ,
72+ "userMenuAboutBtn" : true ,
73+ "userMenuAboutProductBtn" : true ,
74+ "userMenuAccessTIPBtn" : true ,
75+ "userMenuLogoutBtn" : true ,
76+ } ,
77+ } ;
78+
79+ const dedicatedCentersPerRole = {
1180 "USER" : {
12- "My Account" : true ,
1381 "PO Center" : false ,
1482 "Admin Center" : false ,
1583 } ,
1684 "TESTER" : {
17- "My Account" : true ,
1885 "PO Center" : false ,
1986 "Admin Center" : false ,
2087 } ,
2188 "PRODUCT_OWNER" : {
22- "My Account" : true ,
2389 "PO Center" : true ,
2490 "Admin Center" : false ,
2591 } ,
2692 "ADMIN" : {
27- "My Account" : true ,
2893 "PO Center" : true ,
2994 "Admin Center" : true ,
3095 } ,
@@ -60,13 +125,35 @@ for (const product in products) {
60125 await browser . close ( ) ;
61126 } ) ;
62127
63- test ( `Options per Role in User Menu ${ role } ` , async ( ) => {
64- expect ( userMenuButtonsPerRole [ role ] ) . toBeDefined ( ) ;
128+ test ( `User Menu buttons per ${ product } ` , async ( ) => {
129+ expect ( userMenuButtons [ product ] ) . toBeDefined ( ) ;
130+
131+ // open user menu
132+ await page . getByTestId ( "userMenuBtn" ) . click ( ) ;
133+
134+ const buttons = userMenuButtons [ product ] ;
135+ for ( const buttonId in buttons ) {
136+ const menuButton = page . getByTestId ( buttonId ) ;
137+ const isVisible = buttons [ buttonId ] ;
138+ if ( isVisible ) {
139+ await expect ( menuButton ) . toBeVisible ( ) ;
140+ } else {
141+ await expect ( menuButton ) . toHaveCount ( 0 ) ;
142+ }
143+ }
144+
145+ // close user menu
146+ await page . getByTestId ( "userMenuBtn" ) . click ( ) ;
147+ } ) ;
148+ userMenuButtons
149+
150+ test ( `Dedicated Centers per Role in User Menu ${ role } ` , async ( ) => {
151+ expect ( dedicatedCentersPerRole [ role ] ) . toBeDefined ( ) ;
65152
66153 // open user menu
67154 await page . getByTestId ( "userMenuBtn" ) . click ( ) ;
68155
69- const buttons = userMenuButtonsPerRole [ role ] ;
156+ const buttons = dedicatedCentersPerRole [ role ] ;
70157 for ( const buttonText in buttons ) {
71158 const expected = buttons [ buttonText ] ;
72159 const isVisible = await page . getByText ( buttonText ) . isVisible ( ) ;
0 commit comments