Skip to content
This repository was archived by the owner on Feb 24, 2026. It is now read-only.

Commit 7c33155

Browse files
authored
GZY-490: Fix e2e test for employee management add employee position test (#128)
* feat: update e2e test for employee management add employee position test * fix: remove unnecessary code
1 parent afa3ddf commit 7c33155

5 files changed

Lines changed: 47 additions & 244 deletions

File tree

apps/gauzy-e2e/src/e2e/AddEmployeePositionTest.ts

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,13 @@ import * as addEmployeePositionPage from '../support/Base/pages/AddEmployeePosit
44
import { AddEmployeePositionPageData } from '../support/Base/pagedata/AddEmployeePositionPageData';
55
import * as dashboardPage from '../support/Base/pages/Dashboard.po';
66
import { CustomCommands } from '../support/commands';
7-
import * as organizationTagsUserPage from '../support/Base/pages/OrganizationTags.po';
8-
import { OrganizationTagsPageData } from '../support/Base/pagedata/OrganizationTagsPageData';
97

10-
//! Expected to find element: button.delete.mr-3, but never found it.
11-
describe.skip('Add employee position test', () => {
8+
describe('Add employee position test', { testIsolation: false }, () => {
129
before(() => {
1310
CustomCommands.login(loginPage, LoginPageData, dashboardPage);
11+
cy.visit('/#/pages/employees/positions');
1412
});
1513
it('Should be able to add new employee position', () => {
16-
CustomCommands.addTag(organizationTagsUserPage, OrganizationTagsPageData);
17-
cy.visit('/#/pages/employees/positions');
1814
addEmployeePositionPage.gridBtnExists();
1915
addEmployeePositionPage.gridBtnClick(1);
2016
addEmployeePositionPage.addNewPositionButtonVisible();
@@ -31,50 +27,24 @@ describe.skip('Add employee position test', () => {
3127
addEmployeePositionPage.savePositionButtonVisible();
3228
addEmployeePositionPage.clickSavePositionButton();
3329
addEmployeePositionPage.waitMessageToHide();
34-
addEmployeePositionPage.editEmployeePositionButtonVisible();
35-
addEmployeePositionPage.clickEditEmployeePositionButton();
36-
addEmployeePositionPage.verifyTitleExists(AddEmployeePositionPageData.fullStackDeveloper);
37-
addEmployeePositionPage.cancelButtonVisible();
38-
addEmployeePositionPage.clickCancelButton();
3930
});
4031
it('Should be able to edit employee position', () => {
32+
addEmployeePositionPage.positionTableVisible();
33+
addEmployeePositionPage.clickPositionTableRow(0);
4134
addEmployeePositionPage.clickEditEmployeePositionButton();
4235
addEmployeePositionPage.editEmployeePositionInputVisible();
4336
addEmployeePositionPage.enterEditPositionData(AddEmployeePositionPageData.midLevelWebDeveloper);
4437
addEmployeePositionPage.tagsMultiSelectVisible();
4538
addEmployeePositionPage.clickTagsMultiSelect();
4639
addEmployeePositionPage.selectTagsFromDropdown(0);
4740
addEmployeePositionPage.clickKeyboardButtonByKeyCode(9);
48-
addEmployeePositionPage.savePositionButtonVisible();
49-
addEmployeePositionPage.clickSavePositionButton();
41+
addEmployeePositionPage.updatePositionButtonVisible();
42+
addEmployeePositionPage.clickUpdatePositionButton();
5043
addEmployeePositionPage.waitMessageToHide();
51-
addEmployeePositionPage.editEmployeePositionButtonVisible();
52-
addEmployeePositionPage.clickEditEmployeePositionButton();
53-
addEmployeePositionPage.verifyTitleExists(AddEmployeePositionPageData.midLevelWebDeveloper);
54-
addEmployeePositionPage.cancelButtonVisible();
55-
addEmployeePositionPage.clickCancelButton();
5644
});
5745
it('Should be able to delete employee position', () => {
58-
addEmployeePositionPage.addNewPositionButtonVisible();
59-
addEmployeePositionPage.clickAddNewPositionButton();
60-
addEmployeePositionPage.cancelNewPositionButtonVisible();
61-
addEmployeePositionPage.clickCancelNewPositionButton();
62-
addEmployeePositionPage.clickAddNewPositionButton();
63-
addEmployeePositionPage.newPositionInputVisible();
64-
addEmployeePositionPage.enterNewPositionData(AddEmployeePositionPageData.fullStackDeveloper);
65-
addEmployeePositionPage.tagsMultiSelectVisible();
66-
addEmployeePositionPage.clickTagsMultiSelect();
67-
addEmployeePositionPage.selectTagsFromDropdown(0);
68-
addEmployeePositionPage.clickKeyboardButtonByKeyCode(9);
69-
addEmployeePositionPage.savePositionButtonVisible();
70-
addEmployeePositionPage.clickSavePositionButton();
71-
addEmployeePositionPage.waitMessageToHide();
72-
addEmployeePositionPage.deletePositionButtonVisible();
73-
addEmployeePositionPage.clickDeletePositionButton();
74-
addEmployeePositionPage.confirmDeleteButtonVisible();
75-
addEmployeePositionPage.clickConfirmDeletePositionButton();
76-
addEmployeePositionPage.verifyElementIsDeleted(AddEmployeePositionPageData.fullStackDeveloper);
77-
addEmployeePositionPage.waitMessageToHide();
46+
addEmployeePositionPage.positionTableVisible();
47+
addEmployeePositionPage.clickPositionTableRow(1);
7848
addEmployeePositionPage.deletePositionButtonVisible();
7949
addEmployeePositionPage.clickDeletePositionButton();
8050
addEmployeePositionPage.confirmDeleteButtonVisible();

apps/gauzy-e2e/src/support/Base/pageobjects/AddEmployeePositionPageObject.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@ export const AddEmployeePositionPage = {
22
gridButtonCss: 'div.layout-switch > button',
33
addNewPositionButtonCss: 'button[status="success"]',
44
newPositionInputCss: '[placeholder="Position name"]',
5-
tagsSelectCss: '#addTags',
5+
tagsSelectCss: 'nb-dialog-container ng-select#addTags>div>span',
66
tagsSelectOptionCss: '[type="checkbox"]',
7-
saveNewPositionButtonCss: 'button[ng-reflect-disabled="false"]',
8-
updatePositionButtonCss: '.appearance-filled.size-medium',
7+
saveNewPositionButtonCss: 'button[status="success"]',
8+
updatePositionButtonCss: 'button[status="success"]',
99
cancelNewPositionButtonCss: 'button.delete.mr-3',
1010
editEmployeePositionButtonCss: 'button.action.primary',
1111
removeEmployeePositionButtonCss: 'button.action.appearance-filled',
12-
confirmDeletePositionButtonCss: 'button.mr-3.ml-3',
12+
confirmDeletePositionButtonCss: 'ga-delete-confirmation nb-card-footer button[status="danger"]',
1313
editPositionInputCss: 'div.d-flex > input[type="text"]',
14-
verifyTextCss: 'ga-notes-with-tags > div > div > div.ng-star-inserted',
15-
cardBodyCss: 'nb-card-body',
1614
toastrMessageCss: 'nb-toast.ng-trigger',
17-
cancelButtonCss: 'button.delete.mr-3',
18-
selectPositionToEditCss: 'ga-notes-with-tags',
19-
selectPositionToDeleteCss: 'ga-notes-with-tags'
15+
positionTableCss: 'nb-card-body.custom-table'
2016
};

apps/gauzy-e2e/src/support/Base/pages/AddEmployeePosition.po.ts

Lines changed: 21 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ import {
55
clearField,
66
enterInput,
77
clickKeyboardBtnByKeycode,
8-
verifyTextNotExisting,
98
getLastElement,
10-
waitElementToHide,
11-
verifyValue
9+
waitElementToHide
1210
} from '../utils/util';
1311
import { AddEmployeePositionPage } from '../pageobjects/AddEmployeePositionPageObject';
1412

@@ -28,6 +26,14 @@ export const clickAddNewPositionButton = () => {
2826
clickButton(AddEmployeePositionPage.addNewPositionButtonCss);
2927
};
3028

29+
export const positionTableVisible = () => {
30+
verifyElementIsVisible(AddEmployeePositionPage.positionTableCss);
31+
};
32+
33+
export const clickPositionTableRow = (index: number) => {
34+
clickButtonByIndex(AddEmployeePositionPage.positionTableCss, index);
35+
};
36+
3137
export const cancelNewPositionButtonVisible = () => {
3238
verifyElementIsVisible(AddEmployeePositionPage.cancelNewPositionButtonCss);
3339
};
@@ -40,7 +46,7 @@ export const newPositionInputVisible = () => {
4046
verifyElementIsVisible(AddEmployeePositionPage.newPositionInputCss);
4147
};
4248

43-
export const enterNewPositionData = (data) => {
49+
export const enterNewPositionData = (data: string) => {
4450
clickButton(AddEmployeePositionPage.newPositionInputCss);
4551
enterInput(AddEmployeePositionPage.newPositionInputCss, data);
4652
};
@@ -53,11 +59,11 @@ export const clickTagsMultiSelect = () => {
5359
clickButton(AddEmployeePositionPage.tagsSelectCss);
5460
};
5561

56-
export const selectTagsFromDropdown = (index) => {
62+
export const selectTagsFromDropdown = (index: number) => {
5763
clickButtonByIndex(AddEmployeePositionPage.tagsSelectOptionCss, index);
5864
};
5965

60-
export const clickKeyboardButtonByKeyCode = (keycode) => {
66+
export const clickKeyboardButtonByKeyCode = (keycode: number) => {
6167
clickKeyboardBtnByKeycode(keycode);
6268
};
6369

@@ -66,85 +72,50 @@ export const savePositionButtonVisible = () => {
6672
};
6773

6874
export const clickSavePositionButton = () => {
69-
clickButton(AddEmployeePositionPage.saveNewPositionButtonCss);
75+
cy.get(AddEmployeePositionPage.saveNewPositionButtonCss).contains('Save').click();
7076
};
7177

7278
export const updatePositionButtonVisible = () => {
73-
verifyElementIsVisible(AddEmployeePositionPage.updatePositionButtonCss)
74-
}
79+
verifyElementIsVisible(AddEmployeePositionPage.updatePositionButtonCss);
80+
};
7581

7682
export const clickUpdatePositionButton = () => {
77-
clickButton(AddEmployeePositionPage.updatePositionButtonCss);
78-
}
83+
cy.get(AddEmployeePositionPage.updatePositionButtonCss).contains('Update').click();
84+
};
7985

8086
export const editEmployeePositionButtonVisible = () => {
81-
verifyElementIsVisible(
82-
AddEmployeePositionPage.editEmployeePositionButtonCss
83-
);
87+
verifyElementIsVisible(AddEmployeePositionPage.editEmployeePositionButtonCss);
8488
};
8589

8690
export const clickEditEmployeePositionButton = () => {
8791
clickButton(AddEmployeePositionPage.editEmployeePositionButtonCss);
8892
};
8993

90-
export const selectPositionToEdit =() => {
91-
getLastElement(AddEmployeePositionPage.selectPositionToEditCss)
92-
}
93-
94-
export const selectPositionToDelete = () => {
95-
getLastElement(AddEmployeePositionPage.selectPositionToDeleteCss)
96-
}
97-
98-
export const clickRowEmployeeLevelTwice = () => {
99-
cy.wait(500)
100-
getLastElement(AddEmployeePositionPage.selectPositionToEditCss)
101-
}
102-
10394
export const editEmployeePositionInputVisible = () => {
10495
verifyElementIsVisible(AddEmployeePositionPage.editPositionInputCss);
10596
};
10697

107-
export const enterEditPositionData = (data) => {
98+
export const enterEditPositionData = (data: string) => {
10899
clearField(AddEmployeePositionPage.editPositionInputCss);
109100
enterInput(AddEmployeePositionPage.editPositionInputCss, data);
110101
};
111102

112103
export const deletePositionButtonVisible = () => {
113-
verifyElementIsVisible(
114-
AddEmployeePositionPage.removeEmployeePositionButtonCss
115-
);
104+
verifyElementIsVisible(AddEmployeePositionPage.removeEmployeePositionButtonCss);
116105
};
117106

118107
export const clickDeletePositionButton = () => {
119108
getLastElement(AddEmployeePositionPage.removeEmployeePositionButtonCss);
120109
};
121110

122111
export const confirmDeleteButtonVisible = () => {
123-
verifyElementIsVisible(
124-
AddEmployeePositionPage.confirmDeletePositionButtonCss
125-
);
112+
verifyElementIsVisible(AddEmployeePositionPage.confirmDeletePositionButtonCss);
126113
};
127114

128115
export const clickConfirmDeletePositionButton = () => {
129116
clickButton(AddEmployeePositionPage.confirmDeletePositionButtonCss);
130117
};
131118

132-
export const verifyTitleExists = (text) => {
133-
verifyValue(AddEmployeePositionPage.editPositionInputCss, text);
134-
};
135-
136-
export const verifyElementIsDeleted = (text) => {
137-
verifyTextNotExisting(AddEmployeePositionPage.verifyTextCss, text);
138-
};
139-
140119
export const waitMessageToHide = () => {
141120
waitElementToHide(AddEmployeePositionPage.toastrMessageCss);
142121
};
143-
144-
export const cancelButtonVisible = () => {
145-
verifyElementIsVisible(AddEmployeePositionPage.cancelButtonCss);
146-
};
147-
148-
export const clickCancelButton = () => {
149-
clickButton(AddEmployeePositionPage.cancelButtonCss);
150-
};
Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
Feature: Add employee position
22
Scenario: Login with email
33
Given Login with default credentials
4-
Scenario: Add new tag
5-
Then User can add new tag
64
Scenario: Add new employee position
75
Then User can go to Employee positions page
86
And User will see grid button
@@ -17,15 +15,9 @@ Feature: Add employee position
1715
And User can see save position button
1816
When User click on save position button
1917
Then Notification message will appear
20-
When User selects position to edit
21-
And User can see edit position button
22-
When User click on edit position button
23-
Then User can verify position was created
24-
And User can see cancel edit button
25-
And User can click on cancel edit button
2618
Scenario: Еdit employee position
2719
When User selects position to edit
28-
When User click on the created Employee Level Twice
20+
When User click on table position row
2921
Then User can see edit newly position button
3022
When User click on edit new position button
3123
Then User can edit previously created position
@@ -35,27 +27,10 @@ Feature: Add employee position
3527
And User can see update position button
3628
When User click on update position button
3729
Then Notification message will appear
38-
When User selects position to edit
39-
And User can see edit position button
40-
When User click on edit position button
41-
Then User can verify position was edited
42-
And User can see cancel edit button
43-
And User can click on cancel edit button
4430
Scenario: Delete employee position
45-
And User can see Add new position button
46-
When User click on Add new position button
47-
Then User can see new position input
48-
And User can add data for new position
49-
And User can see tag multi-select
50-
When User click on tag multi-select
51-
Then User can pick tag from dropdown menu
52-
And User can see save position button
53-
When User click on save position button
54-
Then Notification message will appear
5531
When User selects position to delete
5632
And User can see delete position button
5733
When User click on delete position button
5834
Then User can see confirm delete button
5935
When User click on confirm delete button
60-
Then User can verify that position was deleted
61-
And User will see a notification message
36+
And User will see a notification message

0 commit comments

Comments
 (0)