Skip to content

Commit 6e58668

Browse files
Copilotrenemadsen
andcommitted
Replace all remaining spinner waits with API intercepts in folders and application-settings
Co-authored-by: renemadsen <[email protected]>
1 parent a74ea7c commit 6e58668

8 files changed

+79
-36
lines changed

eform-client/cypress/e2e/ApplicationSettings.page.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ export class ApplicationSettings {
99
}
1010

1111
save() {
12+
cy.intercept({method: 'PUT', url: '**/api/settings/**'}).as('saveSettings');
13+
cy.intercept({method: 'POST', url: '**/api/settings/**'}).as('saveSettings2');
1214
this.getSaveBtn().should('be.visible').click();
13-
cy.wait(500);
14-
cy.get('#spinner-animation').should('not.exist');
15+
cy.wait(['@saveSettings', '@saveSettings2'], { timeout: 30000 }).then(() => cy.log('Settings saved'));
1516
}
1617

1718
// Site header elements
@@ -38,8 +39,9 @@ export class ApplicationSettings {
3839
getResetBtn: () => cy.get('#loginPageReset'),
3940

4041
reset: () => {
42+
cy.intercept('POST', '**/api/settings/reset-login-page').as('resetLoginPage');
4143
cy.get('#loginPageReset').should('be.visible').should('be.enabled').click();
42-
cy.get('#spinner-animation').should('not.exist');
44+
cy.wait('@resetLoginPage', { timeout: 30000 });
4345
}
4446
};
4547

@@ -54,8 +56,9 @@ export class ApplicationSettings {
5456
getResetBtn: () => cy.get('#siteHeaderReset'),
5557

5658
reset: () => {
59+
cy.intercept('POST', '**/api/settings/reset-page-header').as('resetHeader');
5760
cy.get('#siteHeaderReset').should('be.visible').should('be.enabled').click();
58-
cy.get('#spinner-animation').should('not.exist');
61+
cy.wait('@resetHeader', { timeout: 30000 });
5962
}
6063
};
6164
}

eform-client/cypress/e2e/f/folder-child.add.spec.cy.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ describe('Folders - Add child folder', function () {
3535
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
3636
cy.wait(500);
3737

38+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
39+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
3840
cy.get('#folderSaveBtn').click();
39-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
41+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
4042
foldersPage.newFolderBtn().should('be.visible');
4143
cy.wait(500);
4244
});
@@ -71,8 +73,10 @@ describe('Folders - Add child folder', function () {
7173
cy.wait(500);
7274

7375
// Save
76+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
77+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
7478
cy.get('#folderSaveBtn').click();
75-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
79+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
7680
foldersPage.newFolderBtn().should('be.visible');
7781
cy.wait(500);
7882

@@ -102,8 +106,9 @@ describe('Folders - Add child folder', function () {
102106
// Delete parent folder (which will delete children too)
103107
cy.get('.folder-tree-name').contains(parentFolderName).parents('mat-tree-node').first().find('button.mat-menu-trigger').click();
104108
cy.get('#deleteFolderTreeBtn').click();
109+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
105110
cy.get('#saveDeleteBtn').should('be.visible').click();
106-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
111+
cy.wait('@deleteFolder', { timeout: 30000 });
107112
foldersPage.newFolderBtn().should('be.visible');
108113
cy.wait(500);
109114

eform-client/cypress/e2e/f/folder-child.delete.spec.cy.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ describe('Folders - Delete child folder', function () {
3535
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
3636
cy.wait(500);
3737

38+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
39+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
3840
cy.get('#folderSaveBtn').click();
39-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
41+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
4042
foldersPage.newFolderBtn().should('be.visible');
4143
cy.wait(500);
4244

@@ -59,8 +61,10 @@ describe('Folders - Delete child folder', function () {
5961
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(childDescription);
6062
cy.wait(500);
6163

64+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
65+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
6266
cy.get('#folderSaveBtn').click();
63-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
67+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
6468
foldersPage.newFolderBtn().should('be.visible');
6569
cy.wait(500);
6670

@@ -82,8 +86,9 @@ describe('Folders - Delete child folder', function () {
8286
// Delete the child
8387
cy.wrap($children.first()).find('button.mat-menu-trigger').click();
8488
cy.get('#deleteFolderTreeBtn').click();
89+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
8590
cy.get('#saveDeleteBtn').should('be.visible').click();
86-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
91+
cy.wait('@deleteFolder', { timeout: 30000 });
8792
foldersPage.newFolderBtn().should('be.visible');
8893
cy.wait(500);
8994

@@ -122,8 +127,10 @@ describe('Folders - Delete child folder', function () {
122127
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(childDescription);
123128
cy.wait(500);
124129

130+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
131+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
125132
cy.get('#folderSaveBtn').click();
126-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
133+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
127134
foldersPage.newFolderBtn().should('be.visible');
128135
cy.wait(500);
129136

@@ -167,8 +174,9 @@ describe('Folders - Delete child folder', function () {
167174
// Delete first child
168175
cy.wrap($children.first()).find('button.mat-menu-trigger').click();
169176
cy.get('#deleteFolderTreeBtn').click();
177+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
170178
cy.get('#saveDeleteBtn').should('be.visible').click();
171-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
179+
cy.wait('@deleteFolder', { timeout: 30000 });
172180
foldersPage.newFolderBtn().should('be.visible');
173181
cy.wait(500);
174182

@@ -187,8 +195,9 @@ describe('Folders - Delete child folder', function () {
187195
// Delete parent folder
188196
cy.get('.folder-tree-name').contains(parentFolderName).parents('mat-tree-node').first().find('button.mat-menu-trigger').click();
189197
cy.get('#deleteFolderTreeBtn').click();
198+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
190199
cy.get('#saveDeleteBtn').should('be.visible').click();
191-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
200+
cy.wait('@deleteFolder', { timeout: 30000 });
192201
foldersPage.newFolderBtn().should('be.visible');
193202

194203
// Verify parent was deleted

eform-client/cypress/e2e/f/folder-child.edit.spec.cy.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ describe('Folders - Edit child folder', function () {
3636
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
3737
cy.wait(500);
3838

39+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
40+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
3941
cy.get('#folderSaveBtn').click();
40-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
42+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
4143
foldersPage.newFolderBtn().should('be.visible');
4244
cy.wait(500);
4345

@@ -59,8 +61,10 @@ describe('Folders - Edit child folder', function () {
5961
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(childDescription);
6062
cy.wait(500);
6163

64+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
65+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
6266
cy.get('#folderSaveBtn').click();
63-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
67+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
6468
foldersPage.newFolderBtn().should('be.visible');
6569
cy.wait(500);
6670

@@ -95,8 +99,9 @@ describe('Folders - Edit child folder', function () {
9599
cy.wait(500);
96100

97101
// Save
102+
cy.intercept('PUT', '**/api/folders').as('updateFolder');
98103
cy.get('#saveEditBtn').click();
99-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
104+
cy.wait('@updateFolder', { timeout: 30000 });
100105
foldersPage.newFolderBtn().should('be.visible');
101106
cy.wait(500);
102107

@@ -137,8 +142,9 @@ describe('Folders - Edit child folder', function () {
137142
cy.wait(500);
138143

139144
// Save
145+
cy.intercept('PUT', '**/api/folders').as('updateFolder');
140146
cy.get('#saveEditBtn').click();
141-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
147+
cy.wait('@updateFolder', { timeout: 30000 });
142148
foldersPage.newFolderBtn().should('be.visible');
143149
cy.wait(500);
144150

@@ -234,8 +240,9 @@ describe('Folders - Edit child folder', function () {
234240
// Delete parent folder (which will delete child too)
235241
cy.get('.folder-tree-name').contains(parentFolderName).parents('mat-tree-node').first().find('button.mat-menu-trigger').click();
236242
cy.get('#deleteFolderTreeBtn').click();
243+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
237244
cy.get('#saveDeleteBtn').should('be.visible').click();
238-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
245+
cy.wait('@deleteFolder', { timeout: 30000 });
239246
foldersPage.newFolderBtn().should('be.visible');
240247

241248
// Verify folders deleted

eform-client/cypress/e2e/f/folder-tree.add.spec.cy.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ describe('Folders - Add folder', function () {
4848
cy.wait(500);
4949

5050
// Save
51+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
52+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
5153
cy.get('#folderSaveBtn').click();
52-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
54+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
5355
foldersPage.newFolderBtn().should('be.visible');
5456
cy.wait(500);
5557

@@ -128,8 +130,10 @@ describe('Folders - Add folder', function () {
128130
cy.wait(500);
129131

130132
// Save
133+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
134+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
131135
cy.get('#folderSaveBtn').click();
132-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
136+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
133137
foldersPage.newFolderBtn().should('be.visible');
134138
cy.wait(500);
135139

@@ -176,8 +180,10 @@ describe('Folders - Add folder', function () {
176180
cy.wait(500);
177181

178182
// Save
183+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
184+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
179185
cy.get('#folderSaveBtn').click();
180-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
186+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
181187
foldersPage.newFolderBtn().should('be.visible');
182188
cy.wait(500);
183189

@@ -224,8 +230,10 @@ describe('Folders - Add folder', function () {
224230
cy.wait(500);
225231

226232
// Save
233+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
234+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
227235
cy.get('#folderSaveBtn').click();
228-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
236+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
229237
foldersPage.newFolderBtn().should('be.visible');
230238
cy.wait(500);
231239

@@ -272,8 +280,10 @@ describe('Folders - Add folder', function () {
272280
cy.wait(500);
273281

274282
// Save
283+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
284+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
275285
cy.get('#folderSaveBtn').click();
276-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
286+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
277287
foldersPage.newFolderBtn().should('be.visible');
278288
cy.wait(500);
279289

@@ -298,8 +308,9 @@ describe('Folders - Add folder', function () {
298308
if ($folder.length > 0) {
299309
cy.wrap($folder).find('button.mat-menu-trigger').click();
300310
cy.get('#deleteFolderTreeBtn').click();
311+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
301312
cy.get('#saveDeleteBtn').should('be.visible').click();
302-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
313+
cy.wait('@deleteFolder', { timeout: 30000 });
303314
foldersPage.newFolderBtn().should('be.visible');
304315
cy.wait(500);
305316
}

eform-client/cypress/e2e/f/folder-tree.delete.spec.cy.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ describe('Folders - Delete folder', function () {
3737
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
3838
cy.wait(500);
3939

40+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
41+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
4042
cy.get('#folderSaveBtn').click();
41-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
43+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
4244
foldersPage.newFolderBtn().should('be.visible');
4345
cy.wait(500);
4446

@@ -47,8 +49,9 @@ describe('Folders - Delete folder', function () {
4749
// Delete the folder
4850
cy.get('.folder-tree-name').contains(folderName).parents('mat-tree-node').find('button.mat-menu-trigger').click();
4951
cy.get('#deleteFolderTreeBtn').click();
52+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
5053
cy.get('#saveDeleteBtn').should('be.visible').click();
51-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
54+
cy.wait('@deleteFolder', { timeout: 30000 });
5255
foldersPage.newFolderBtn().should('be.visible');
5356
cy.wait(500);
5457

@@ -88,8 +91,10 @@ describe('Folders - Delete folder', function () {
8891
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
8992
cy.wait(500);
9093

94+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
95+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
9196
cy.get('#folderSaveBtn').click();
92-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
97+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
9398
foldersPage.newFolderBtn().should('be.visible');
9499
cy.wait(500);
95100

@@ -120,8 +125,9 @@ describe('Folders - Delete folder', function () {
120125
if ($folder.length > 0) {
121126
cy.wrap($folder).parents('mat-tree-node').find('button.mat-menu-trigger').click();
122127
cy.get('#deleteFolderTreeBtn').click();
128+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
123129
cy.get('#saveDeleteBtn').should('be.visible').click();
124-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
130+
cy.wait('@deleteFolder', { timeout: 30000 });
125131
foldersPage.newFolderBtn().should('be.visible');
126132

127133
// Verify folder was deleted

eform-client/cypress/e2e/f/folder-tree.edit.spec.cy.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ describe('Folders - Edit folder', function () {
3535
cy.get(`#createFolderDescriptionTranslation_${nameIndex} .NgxEditor__Content`).type(description);
3636
cy.wait(500);
3737

38+
cy.intercept({method: 'POST', url: '**/api/folders'}).as('createFolder');
39+
cy.intercept({method: 'PUT', url: '**/api/folders'}).as('updateFolder');
3840
cy.get('#folderSaveBtn').click();
39-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
41+
cy.wait(['@createFolder', '@updateFolder'], { timeout: 30000 }).then(() => cy.log('Folder operation completed'));
4042
foldersPage.newFolderBtn().should('be.visible');
4143
cy.wait(500);
4244
});
@@ -64,8 +66,9 @@ describe('Folders - Edit folder', function () {
6466
cy.wait(500);
6567

6668
// Save
69+
cy.intercept('PUT', '**/api/folders').as('updateFolder');
6770
cy.get('#saveEditBtn').click();
68-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
71+
cy.wait('@updateFolder', { timeout: 30000 });
6972
foldersPage.newFolderBtn().should('be.visible');
7073
cy.wait(500);
7174

@@ -108,8 +111,9 @@ describe('Folders - Edit folder', function () {
108111
cy.wait(500);
109112

110113
// Save
114+
cy.intercept('PUT', '**/api/folders').as('updateFolder');
111115
cy.get('#saveEditBtn').click();
112-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
116+
cy.wait('@updateFolder', { timeout: 30000 });
113117
foldersPage.newFolderBtn().should('be.visible');
114118
cy.wait(500);
115119

@@ -174,8 +178,9 @@ describe('Folders - Edit folder', function () {
174178
after('should delete folder', () => {
175179
cy.get('.folder-tree-name').contains(folderName).parents('mat-tree-node').find('button.mat-menu-trigger').click();
176180
cy.get('#deleteFolderTreeBtn').click();
181+
cy.intercept('DELETE', '**/api/folders/**').as('deleteFolder');
177182
cy.get('#saveDeleteBtn').should('be.visible').click();
178-
cy.get('#spinner-animation').should('not.exist', { timeout: 90000 });
183+
cy.wait('@deleteFolder', { timeout: 30000 });
179184
foldersPage.newFolderBtn().should('be.visible');
180185

181186
// Verify folder was deleted

eform-client/cypress/e2e/g/application-settings.site-header.spec.cy.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ describe('Application settings - Site header section', () => {
1010
it('should hide image', () => {
1111
applicationSettingsPage.Navbar.goToApplicationSettings();
1212

13-
// Wait for spinner to disappear
14-
cy.get('#spinner-animation').should('not.exist');
15-
16-
// Wait for sign-out dropdown to be visible
13+
// Wait for sign-out dropdown to be visible (page loaded)
1714
cy.get('#sign-out-dropdown').should('be.visible', { timeout: 40000 });
1815

1916
// Toggle site header image visibility

0 commit comments

Comments
 (0)