11import ImpersonateBanner from '@/components/ImpersonateBanner' ;
22import Navbar from '@/components/Navbar' ;
3+ import AppConfig from '@/config/AppConfig' ;
34import { expect , test } from '@/fixtures/fixtures' ;
45import LoginPage from '@/pages/LoginPage' ;
56import { CreateUserType } from '@/types' ;
@@ -9,131 +10,136 @@ let formData: CreateUserType;
910
1011const uniqueIdentifier = new UniqueIdentifier ( ) ;
1112
12- test . beforeEach (
13- async ( { page, navbar, userListPage, createUserPage, editUserPage } ) => {
14- formData = {
15- username : uniqueIdentifier . generateUniqueString ( 'created-user' ) ,
16- firstName : 'user_firstanme' ,
17- lastName : 'user_lastname' ,
18- password : 'testpassword123' ,
19- } ;
20-
21- await test . step ( 'Go to create user page' , async ( ) => {
22- await page . goto ( './dashboard' ) ;
23- await navbar . configurationButton . click ( ) ;
24- await navbar . users . click ( ) ;
25- await userListPage . createUserButton . click ( ) ;
13+ test . describe ( 'User Permissions' , ( ) => {
14+ test . use ( { storageState : AppConfig . instance . users . impersonator . storagePath } ) ;
15+
16+ test . beforeEach (
17+ async ( { page, navbar, userListPage, createUserPage, editUserPage } ) => {
18+ formData = {
19+ username : uniqueIdentifier . generateUniqueString ( 'created-user' ) ,
20+ firstName : 'user_firstanme' ,
21+ lastName : 'user_lastname' ,
22+ password : 'testpassword123' ,
23+ } ;
24+
25+ await test . step ( 'Go to create user page' , async ( ) => {
26+ await page . goto ( './dashboard' ) ;
27+ await navbar . configurationButton . click ( ) ;
28+ await navbar . users . click ( ) ;
29+ await userListPage . createUserButton . click ( ) ;
30+ } ) ;
31+
32+ await test . step ( 'Create new test user' , async ( ) => {
33+ await createUserPage . fillUserForm ( formData ) ;
34+ await createUserPage . saveButton . click ( ) ;
35+ await expect ( editUserPage . summary ) . toContainText (
36+ `${ formData . firstName } ${ formData . lastName } `
37+ ) ;
38+ await editUserPage . userDetailsTabSection . activateUserCheckBox . click ( ) ;
39+ await editUserPage . userDetailsTabSection . saveButton . click ( ) ;
40+ } ) ;
41+
42+ await editUserPage . authorizationTab . click ( ) ;
43+ }
44+ ) ;
45+
46+ test . afterEach ( async ( { editUserPage, userListPage } ) => {
47+ await test . step ( 'Go to edit user page' , async ( ) => {
48+ await userListPage . goToPage ( ) ;
49+ await userListPage . searchByNameField . fill ( formData . username ) ;
50+ await userListPage . findButton . click ( ) ;
51+ await userListPage . getUserToEdit ( formData . username ) . click ( ) ;
2652 } ) ;
2753
28- await test . step ( 'Create new test user' , async ( ) => {
29- await createUserPage . fillUserForm ( formData ) ;
30- await createUserPage . saveButton . click ( ) ;
31- await expect ( editUserPage . summary ) . toContainText (
32- `${ formData . firstName } ${ formData . lastName } `
33- ) ;
34- await editUserPage . userDetailsTabSection . activateUserCheckBox . click ( ) ;
35- await editUserPage . userDetailsTabSection . saveButton . click ( ) ;
54+ await test . step ( 'Delete user' , async ( ) => {
55+ await editUserPage . actionButton . click ( ) ;
56+ await editUserPage . clickDeleteUser ( ) ;
3657 } ) ;
3758
38- await editUserPage . authorizationTab . click ( ) ;
39- }
40- ) ;
41-
42- test . afterEach ( async ( { editUserPage, userListPage } ) => {
43- await test . step ( 'Go to edit user page' , async ( ) => {
44- await userListPage . goToPage ( ) ;
45- await userListPage . searchByNameField . fill ( formData . username ) ;
46- await userListPage . findButton . click ( ) ;
47- await userListPage . getUserToEdit ( formData . username ) . click ( ) ;
48- } ) ;
49-
50- await test . step ( 'Delete user' , async ( ) => {
51- await editUserPage . actionButton . click ( ) ;
52- await editUserPage . clickDeleteUser ( ) ;
59+ await test . step ( 'Assert that user does not exists in the list' , async ( ) => {
60+ await userListPage . searchByNameField . fill ( formData . username ) ;
61+ await userListPage . findButton . click ( ) ;
62+ await expect ( userListPage . getUserToEdit ( formData . username ) ) . toBeHidden ( ) ;
63+ } ) ;
5364 } ) ;
5465
55- await test . step ( 'Assert that user does not exists in the list' , async ( ) => {
56- await userListPage . searchByNameField . fill ( formData . username ) ;
57- await userListPage . findButton . click ( ) ;
58- await expect ( userListPage . getUserToEdit ( formData . username ) ) . toBeHidden ( ) ;
59- } ) ;
60- } ) ;
66+ //tests are covering all steps from test case OBPIH-4622 Users
67+ test ( 'Add default location for user and auto-login to location' , async ( {
68+ editUserPage,
69+ mainLocationService,
70+ emptyUserContext,
71+ } ) => {
72+ await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
6173
62- //tests are covering all steps from test case OBPIH-4622 Users
63- test ( 'Add default location for user and auto-login to location' , async ( {
64- editUserPage,
65- mainLocationService,
66- emptyUserContext,
67- } ) => {
68- await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
74+ await test . step ( 'Select role "Manager"' , async ( ) => {
75+ await editUserPage . authorizationTab . click ( ) ;
76+ await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
77+ await editUserPage . authorizationTabSection . getUserRole ( 'Manager' ) . click ( ) ;
78+ } ) ;
6979
70- await test . step ( 'Select role "Manager"' , async ( ) => {
71- await editUserPage . authorizationTab . click ( ) ;
72- await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
73- await editUserPage . authorizationTabSection . getUserRole ( 'Manager' ) . click ( ) ;
74- } ) ;
80+ await test . step ( 'Select default location' , async ( ) => {
81+ await editUserPage . authorizationTabSection . defaultLocationSelect . click ( ) ;
82+ const location = await mainLocationService . getLocation ( ) ;
83+ await editUserPage . authorizationTabSection
84+ . getDefaultLocation ( location . name )
85+ . click ( ) ;
86+ } ) ;
7587
76- await test . step ( 'Select default location' , async ( ) => {
77- await editUserPage . authorizationTabSection . defaultLocationSelect . click ( ) ;
78- const location = await mainLocationService . getLocation ( ) ;
79- await editUserPage . authorizationTabSection
80- . getDefaultLocation ( location . name )
81- . click ( ) ;
82- } ) ;
88+ await editUserPage . authorizationTabSection . autoLoginCheckbox . click ( ) ;
89+ await editUserPage . authorizationTabSection . saveButton . click ( ) ;
8390
84- await editUserPage . authorizationTabSection . autoLoginCheckbox . click ( ) ;
85- await editUserPage . authorizationTabSection . saveButton . click ( ) ;
91+ const newUserPage = await emptyUserContext . newPage ( ) ;
92+ const newUserLoginPage = new LoginPage ( newUserPage ) ;
8693
87- const newUserPage = await emptyUserContext . newPage ( ) ;
88- const newUserLoginPage = new LoginPage ( newUserPage ) ;
94+ await test . step ( 'Login as new created user' , async ( ) => {
95+ await newUserLoginPage . goToPage ( ) ;
96+ await newUserLoginPage . fillLoginForm ( formData . username , formData . password ) ;
97+ await newUserLoginPage . loginButton . click ( ) ;
98+ } ) ;
8999
90- await test . step ( 'Login as new created user' , async ( ) => {
91- await newUserLoginPage . goToPage ( ) ;
92- await newUserLoginPage . fillLoginForm ( formData . username , formData . password ) ;
93- await newUserLoginPage . loginButton . click ( ) ;
100+ await expect ( newUserPage . getByText ( 'My Dashboard' ) ) . toBeVisible ( ) ;
94101 } ) ;
95102
96- await expect ( newUserPage . getByText ( 'My Dashboard' ) ) . toBeVisible ( ) ;
97- } ) ;
103+ test ( 'Impersonate created user' , async ( { editUserPage } ) => {
98104
99- test ( 'Impersonate created user' , async ( { editUserPage } ) => {
100- await test . step ( 'Select role "Manager"' , async ( ) => {
101- await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
102- await editUserPage . authorizationTabSection . getUserRole ( 'Manager' ) . click ( ) ;
103- await editUserPage . authorizationTabSection . saveButton . click ( ) ;
104- } ) ;
105+ await test . step ( 'Select role "Manager"' , async ( ) => {
106+ await editUserPage . authorizationTabSection . defaultRoleSelect . click ( ) ;
107+ await editUserPage . authorizationTabSection . getUserRole ( 'Manager' ) . click ( ) ;
108+ await editUserPage . authorizationTabSection . saveButton . click ( ) ;
109+ } ) ;
105110
106- const newPage = await editUserPage . clickImpersonateButton ( ) ;
107- const impersonateBanner = new ImpersonateBanner ( newPage ) ;
108- const newPageNavbar = new Navbar ( newPage ) ;
111+ const newPage = await editUserPage . clickImpersonateButton ( ) ;
112+ const impersonateBanner = new ImpersonateBanner ( newPage ) ;
113+ const newPageNavbar = new Navbar ( newPage ) ;
109114
110- await test . step ( 'Check impersonate banner visibility on initial page' , async ( ) => {
111- await impersonateBanner . isLoaded ( formData . username ) ;
112- await expect ( newPageNavbar . configurationButton ) . toBeHidden ( ) ;
113- } ) ;
115+ await test . step ( 'Check impersonate banner visibility on initial page' , async ( ) => {
116+ await impersonateBanner . isLoaded ( formData . username ) ;
117+ await expect ( newPageNavbar . configurationButton ) . toBeHidden ( ) ;
118+ } ) ;
114119
115- await test . step ( 'Check impersonate banner visibility on list purchase order page' , async ( ) => {
116- await newPageNavbar . purchasing . click ( ) ;
117- await newPageNavbar . listPurchaseOrders . click ( ) ;
118- await impersonateBanner . isLoaded ( formData . username ) ;
119- } ) ;
120+ await test . step ( 'Check impersonate banner visibility on list purchase order page' , async ( ) => {
121+ await newPageNavbar . purchasing . click ( ) ;
122+ await newPageNavbar . listPurchaseOrders . click ( ) ;
123+ await impersonateBanner . isLoaded ( formData . username ) ;
124+ } ) ;
120125
121- await test . step ( 'Check impersonate banner visibility on create outbound page' , async ( ) => {
122- await newPageNavbar . outbound . click ( ) ;
123- await newPageNavbar . createOutboundMovement . click ( ) ;
124- await impersonateBanner . isLoaded ( formData . username ) ;
125- } ) ;
126+ await test . step ( 'Check impersonate banner visibility on create outbound page' , async ( ) => {
127+ await newPageNavbar . outbound . click ( ) ;
128+ await newPageNavbar . createOutboundMovement . click ( ) ;
129+ await impersonateBanner . isLoaded ( formData . username ) ;
130+ } ) ;
126131
127- await test . step ( 'Check impersonate banner visibility on product list page' , async ( ) => {
128- await newPageNavbar . products . click ( ) ;
129- await newPageNavbar . listProducts . click ( ) ;
130- await impersonateBanner . isLoaded ( formData . username ) ;
131- } ) ;
132+ await test . step ( 'Check impersonate banner visibility on product list page' , async ( ) => {
133+ await newPageNavbar . products . click ( ) ;
134+ await newPageNavbar . listProducts . click ( ) ;
135+ await impersonateBanner . isLoaded ( formData . username ) ;
136+ } ) ;
132137
133- await test . step ( 'Check impersonate banner visibility when logging out of impersonate user' , async ( ) => {
134- await impersonateBanner . logoutButton . click ( ) ;
135- expect ( impersonateBanner . isLoaded ( formData . username ) ) . rejects . toThrow ( ) ;
136- } ) ;
138+ await test . step ( 'Check impersonate banner visibility when logging out of impersonate user' , async ( ) => {
139+ await impersonateBanner . logoutButton . click ( ) ;
140+ expect ( impersonateBanner . isLoaded ( formData . username ) ) . rejects . toThrow ( ) ;
141+ } ) ;
137142
138- await newPage . close ( ) ;
143+ await newPage . close ( ) ;
144+ } ) ;
139145} ) ;
0 commit comments