Skip to content

Commit bf91465

Browse files
committed
E2E: Replace all old Toas message checks with proper expections
The old way would silently fail in case a toas of different type spawned on screen. For example if a form save failed, instead of being notified about that, Cypress would just say that the success Toas was newer on screen.
1 parent 5d155af commit bf91465

17 files changed

+106
-114
lines changed

cypress/e2e/commonSubstituteDays.cy.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ describe('Common substitute operating periods', () => {
9999
substituteDaySettingsPage.commonSubstitutePeriodForm
100100
.getSaveButton()
101101
.click();
102-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
103-
toast.getSuccessToast().should('not.exist');
102+
toast.expectSuccessToast('Tallennus onnistui');
104103

105104
// Navigate to the vehicleSchedule page
106105
substituteDaySettingsPage.commonSubstitutePeriodForm
@@ -216,7 +215,7 @@ describe('Common substitute operating periods', () => {
216215
'Tapaninpäivä 2023',
217216
);
218217

219-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
218+
toast.expectSuccessToast('Tallennus onnistui');
220219

221220
// And navigate again to the vehicle schedules
222221
substituteDaySettingsPage.commonSubstitutePeriodForm
@@ -327,7 +326,7 @@ describe('Common substitute operating periods', () => {
327326
substituteDaySettingsPage.commonSubstitutePeriodForm
328327
.getSaveButton()
329328
.click();
330-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
329+
toast.expectSuccessToast('Tallennus onnistui');
331330

332331
// Navigate to the vehicleSchedule page
333332
substituteDaySettingsPage.commonSubstitutePeriodForm
@@ -468,7 +467,7 @@ describe('Common substitute operating periods', () => {
468467
.getSaveButton()
469468
.click();
470469

471-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
470+
toast.expectSuccessToast('Tallennus onnistui');
472471

473472
// Make sure the page is clear
474473
substituteDaySettingsPage.observationPeriodForm.setObservationPeriod(
@@ -497,7 +496,7 @@ describe('Common substitute operating periods', () => {
497496
substituteDaySettingsPage.commonSubstitutePeriodForm
498497
.getSaveButton()
499498
.click();
500-
substituteDaySettingsPage.toast.checkDangerToastHasMessage(
499+
substituteDaySettingsPage.toast.expectDangerToast(
501500
'Tallennus epäonnistui: GraphQL errors: Exclusion violation. conflicting key ' +
502501
'value violates exclusion constraint "substitute_operating_day_by_line_type_no_timespan_overlap"',
503502
);

cypress/e2e/editRoute.cy.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ describe('Route editing', () => {
139139

140140
editRoutePage.confirmationDialog.getConfirmButton().click();
141141
expectGraphQLCallToSucceed('@gqlDeleteRoute');
142-
toast.checkSuccessToastHasMessage('Reitti poistettu');
142+
toast.expectSuccessToast('Reitti poistettu');
143143

144144
routeRow
145145
.getRouteHeaderRow('901', RouteDirectionEnum.Outbound)

cypress/e2e/editStop.cy.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
StopForm,
2020
StopFormInfo,
2121
Toast,
22+
ToastType,
2223
} from '../pageObjects';
2324
import { UUID } from '../types';
2425
import { SupportedResources, insertToDbHelper } from '../utils';
@@ -127,7 +128,7 @@ describe('Stop editing tests', () => {
127128
});
128129
});
129130

130-
toast.checkSuccessToastHasMessage('Pysäkki muokattu');
131+
toast.expectSuccessToast('Pysäkki muokattu');
131132

132133
map.waitForLoadToComplete();
133134

@@ -160,7 +161,7 @@ describe('Stop editing tests', () => {
160161

161162
expectGraphQLCallToSucceed('@gqlRemoveStop');
162163

163-
toast.checkSuccessToastHasMessage('Pysäkki poistettu');
164+
toast.expectSuccessToast('Pysäkki poistettu');
164165

165166
map
166167
.getStopByStopLabelAndPriority(stops[0].label, stops[0].priority)
@@ -216,7 +217,10 @@ describe('Stop editing tests', () => {
216217
});
217218
});
218219

219-
toast.checkSuccessToastHasMessage('Pysäkki muokattu');
220+
toast.expectMultipleToasts([
221+
{ type: ToastType.SUCCESS, message: 'Pysäkki muokattu' },
222+
{ type: ToastType.WARNING, message: 'Pysäkkien suodattimia muutettu' },
223+
]);
220224

221225
map
222226
.getStopByStopLabelAndPriority(
@@ -270,7 +274,7 @@ describe('Stop editing tests', () => {
270274

271275
confirmationDialog.getConfirmButton().click();
272276

273-
toast.checkSuccessToastHasMessage('Hastus-paikka luotu');
277+
toast.expectSuccessToast('Hastus-paikka luotu');
274278

275279
expectGraphQLCallToSucceed('@gqlEditStop');
276280

@@ -311,7 +315,7 @@ describe('Stop editing tests', () => {
311315
stopForm.save();
312316
confirmationDialog.getConfirmButton().click();
313317

314-
toast.checkDangerToastHasMessage(
318+
toast.expectDangerToast(
315319
'Tallennus epäonnistui, ApolloError: range lower bound must be less than or equal to range upper bound, range lower bound must be less than or equal to range upper bound',
316320
);
317321
expectGraphQLCallToReturnError('@gqlEditStop');

cypress/e2e/hastusExport.cy.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ describe('Hastus export', () => {
150150
.getRouteLineTableRowCheckbox('901')
151151
.check();
152152
routesAndLinesPage.exportToolBar.getExportSelectedButton().click();
153-
routesAndLinesPage.toast.checkDangerToastHasMessage(
153+
routesAndLinesPage.toast.expectDangerToast(
154154
'Seuraavia reittejä ei voida viedä: 901 (outbound). Ensimmäisen ja viimeisen pysäkin täytyy olla asetettuna käyttämään Hastus-paikkaa.',
155155
);
156156
},
@@ -190,7 +190,7 @@ describe('Hastus export', () => {
190190
.getRouteLineTableRowCheckbox('901')
191191
.check();
192192
routesAndLinesPage.exportToolBar.getExportSelectedButton().click();
193-
routesAndLinesPage.toast.checkDangerToastHasMessage(
193+
routesAndLinesPage.toast.expectDangerToast(
194194
'Seuraavia reittejä ei voida viedä: 901 (outbound). Ensimmäisen ja viimeisen pysäkin täytyy olla asetettuna käyttämään Hastus-paikkaa.',
195195
);
196196
},
@@ -247,7 +247,7 @@ describe('Hastus export', () => {
247247
.getRouteLineTableRowCheckbox('901')
248248
.check();
249249
routesAndLinesPage.exportToolBar.getExportSelectedButton().click();
250-
routesAndLinesPage.toast.checkDangerToastHasMessage(
250+
routesAndLinesPage.toast.expectDangerToast(
251251
'Seuraavia reittejä ei voida viedä: 901 (outbound). Ensimmäisen ja viimeisen pysäkin täytyy olla asetettuna käyttämään Hastus-paikkaa.',
252252
);
253253
},

cypress/e2e/map/createRoute.cy.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ describe('Route creation', () => {
125125
mapModal.map.getLoader().should('not.exist');
126126

127127
mapFooter.save();
128-
toast.checkSuccessToastHasMessage('Reitti tallennettu');
128+
toast.expectSuccessToast('Reitti tallennettu');
129129

130130
// Check from routeStopsOverlay that everything is correct
131131
routeStopsOverlay
@@ -207,7 +207,7 @@ describe('Route creation', () => {
207207
});
208208

209209
mapFooter.save();
210-
toast.checkSuccessToastHasMessage('Reitti tallennettu');
210+
toast.expectSuccessToast('Reitti tallennettu');
211211

212212
routeStopsOverlay
213213
.getHeader()
@@ -282,7 +282,7 @@ describe('Route creation', () => {
282282
});
283283

284284
mapFooter.save();
285-
toast.checkDangerToastHasMessage(
285+
toast.expectDangerToast(
286286
'Tallennus epäonnistui: Reitillä on oltava ainakin kaksi pysäkkiä.',
287287
);
288288
},
@@ -339,7 +339,7 @@ describe('Route creation', () => {
339339
mapModal.map.getLoader().should('not.exist');
340340

341341
mapFooter.save();
342-
toast.checkSuccessToastHasMessage('Reitti tallennettu');
342+
toast.expectSuccessToast('Reitti tallennettu');
343343
},
344344
);
345345

cypress/e2e/occasionalSubstituteDays.cy.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ describe('Occasional substitute operating periods', () => {
103103
substituteDaySettingsPage.occasionalSubstitutePeriodForm
104104
.getSaveButton()
105105
.click();
106-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
106+
toast.expectSuccessToast('Tallennus onnistui');
107107

108108
// Navigate to route's timetable
109109
navbar.getTimetablesLink().click();
@@ -259,7 +259,7 @@ describe('Occasional substitute operating periods', () => {
259259
substituteDaySettingsPage.occasionalSubstitutePeriodForm
260260
.getSaveButton()
261261
.click();
262-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
262+
toast.expectSuccessToast('Tallennus onnistui');
263263

264264
// Navigate to route's timetable
265265
navbar.getTimetablesLink().click();
@@ -341,7 +341,7 @@ describe('Occasional substitute operating periods', () => {
341341
substituteDaySettingsPage.occasionalSubstitutePeriodForm
342342
.getSaveButton()
343343
.click();
344-
toast.checkSuccessToastHasMessage('Tallennus onnistui');
344+
toast.expectSuccessToast('Tallennus onnistui');
345345

346346
// Navigate to route's timetable
347347
navbar.getTimetablesLink().click();

cypress/e2e/routeStops.cy.ts

+6-11
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ describe('Line details page: stops on route', () => {
157157
});
158158
});
159159

160-
toast.checkSuccessToastHasMessage('Reitti tallennettu');
160+
toast.expectSuccessToast('Reitti tallennettu');
161161

162162
lineRouteList.getNthLineRouteListItem(0).within(() => {
163163
// Verify that E2E003 is now part of the route
@@ -179,10 +179,7 @@ describe('Line details page: stops on route', () => {
179179
});
180180
});
181181

182-
// TODO: Until we can close toast messages, we have to check that both of them
183-
// contains success message, because they are both visible at the same time.
184-
toast.getSuccessToast().eq(0).shouldHaveText('Reitti tallennettu');
185-
toast.getSuccessToast().eq(1).shouldHaveText('Reitti tallennettu');
182+
toast.expectSuccessToast('Reitti tallennettu');
186183

187184
lineRouteList.getNthLineRouteListItem(0).within(() => {
188185
// Verify that E2E004 is no longer part of route
@@ -241,9 +238,7 @@ describe('Line details page: stops on route', () => {
241238
});
242239
});
243240

244-
toast.checkDangerToastHasMessage(
245-
'Reitillä on oltava ainakin kaksi pysäkkiä.',
246-
);
241+
toast.expectDangerToast('Reitillä on oltava ainakin kaksi pysäkkiä.');
247242
},
248243
);
249244

@@ -279,7 +274,7 @@ describe('Line details page: stops on route', () => {
279274

280275
viaForm.getSaveButton().click();
281276

282-
toast.checkSuccessToastHasMessage('Via-tieto asetettu');
277+
toast.expectSuccessToast('Via-tieto asetettu');
283278

284279
// Check that via-icon exists and all info is saved
285280
lineRouteListItem.getNthRouteStopListItem(2).within(() => {
@@ -294,7 +289,7 @@ describe('Line details page: stops on route', () => {
294289
viaForm.getViaSwedishShortNameInput().should('have.value', 'Kort namn');
295290

296291
viaForm.getRemoveButton().click();
297-
toast.checkSuccessToastHasMessage('Via-tieto poistettu');
292+
toast.expectSuccessToast('Via-tieto poistettu');
298293

299294
// Check that via-icon no longer exists and the create via button is visible
300295
lineRouteListItem.getNthRouteStopListItem(2).within(() => {
@@ -354,7 +349,7 @@ describe('Line details page: stops on route', () => {
354349
timingSettingsForm.getIsLoadingTimeAllowedCheckbox().check();
355350

356351
timingSettingsForm.getSavebutton().click();
357-
toast.checkSuccessToastHasMessage('Aika-asetusten tallennus onnistui');
352+
toast.expectSuccessToast('Aika-asetusten tallennus onnistui');
358353

359354
lineRouteList.getNthLineRouteListItem(0).within(() => {
360355
lineRouteListItem.getNthRouteStopListItem(2).within(() => {

cypress/e2e/stop-registry/stopAreaDetails.cy.ts

-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,6 @@ describe('Stop area details', () => {
280280
function waitForSaveToBeFinished() {
281281
expectGraphQLCallToSucceed('@gqlUpsertStopArea');
282282
toast.expectSuccessToast('Pysäkkialue muokattu');
283-
toast.getSuccessToast().should('not.exist');
284283
}
285284

286285
function inputBasicDetails(inputs: ExpectedBasicDetails) {

cypress/e2e/stop-registry/stopDetails.cy.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2294,7 +2294,7 @@ describe('Stop details', () => {
22942294
form.submitButton().click();
22952295
});
22962296

2297-
toast.expectSuccessToast('Uusi versio luotu Avataan uusi versio');
2297+
toast.expectSuccessToast('Uusi versio luotu\nAvataan uusi versio');
22982298
copyModal.modal().should('not.exist');
22992299
stopDetailsPage.loadingStopDetails().should('not.exist');
23002300

cypress/e2e/timetableImport.cy.ts

+14-14
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ describe('Timetable import', () => {
9999
timetablesMainPage.getImportButton().click();
100100
importTimetablesPage.selectFileToImport(IMPORT_FILENAME);
101101
importTimetablesPage.getUploadButton().click();
102-
importTimetablesPage.toast.checkSuccessToastHasMessage(
102+
importTimetablesPage.toast.expectSuccessToast(
103103
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
104104
);
105105
// Files uploaded -> nothing left to upload.
@@ -215,7 +215,7 @@ describe('Timetable import', () => {
215215
});
216216

217217
previewTimetablesPage.getSaveButton().click();
218-
importTimetablesPage.toast.checkSuccessToastHasMessage(
218+
importTimetablesPage.toast.expectSuccessToast(
219219
'Aikataulujen tuonti onnistui!',
220220
);
221221

@@ -435,10 +435,10 @@ describe('Timetable import', () => {
435435
]);
436436
importTimetablesPage.getUploadButton().click();
437437

438-
importTimetablesPage.toast.checkSuccessToastHasMessage(
438+
importTimetablesPage.toast.expectSuccessToast(
439439
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
440440
);
441-
importTimetablesPage.toast.checkSuccessToastHasMessage(
441+
importTimetablesPage.toast.expectSuccessToast(
442442
`Tiedoston ${IMPORT_FILENAME_2} lataus onnistui`,
443443
);
444444

@@ -490,7 +490,7 @@ describe('Timetable import', () => {
490490
});
491491

492492
previewTimetablesPage.getSaveButton().click();
493-
importTimetablesPage.toast.checkSuccessToastHasMessage(
493+
importTimetablesPage.toast.expectSuccessToast(
494494
'Aikataulujen tuonti onnistui!',
495495
);
496496
},
@@ -516,7 +516,7 @@ describe('Timetable import', () => {
516516
importTimetablesPage.selectFilesToImport([IMPORT_FILENAME]);
517517
importTimetablesPage.getUploadButton().click();
518518

519-
importTimetablesPage.toast.checkSuccessToastHasMessage(
519+
importTimetablesPage.toast.expectSuccessToast(
520520
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
521521
);
522522

@@ -538,7 +538,7 @@ describe('Timetable import', () => {
538538
});
539539

540540
previewTimetablesPage.getSaveButton().click();
541-
importTimetablesPage.toast.checkSuccessToastHasMessage(
541+
importTimetablesPage.toast.expectSuccessToast(
542542
'Aikataulujen tuonti onnistui!',
543543
);
544544

@@ -624,7 +624,7 @@ describe('Timetable import', () => {
624624
importTimetablesPage.selectFileToImport(IMPORT_FILENAME);
625625
importTimetablesPage.getUploadButton().click();
626626

627-
importTimetablesPage.toast.checkSuccessToastHasMessage(
627+
importTimetablesPage.toast.expectSuccessToast(
628628
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
629629
);
630630

@@ -646,7 +646,7 @@ describe('Timetable import', () => {
646646
});
647647

648648
previewTimetablesPage.getSaveButton().click();
649-
importTimetablesPage.toast.checkSuccessToastHasMessage(
649+
importTimetablesPage.toast.expectSuccessToast(
650650
'Aikataulujen tuonti onnistui!',
651651
);
652652

@@ -738,7 +738,7 @@ describe('Timetable import', () => {
738738
importTimetablesPage.selectFileToImport(IMPORT_FILENAME);
739739
importTimetablesPage.getUploadButton().click();
740740

741-
importTimetablesPage.toast.checkSuccessToastHasMessage(
741+
importTimetablesPage.toast.expectSuccessToast(
742742
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
743743
);
744744

@@ -791,7 +791,7 @@ describe('Timetable import', () => {
791791
});
792792

793793
previewTimetablesPage.getSaveButton().click();
794-
importTimetablesPage.toast.checkSuccessToastHasMessage(
794+
importTimetablesPage.toast.expectSuccessToast(
795795
'Aikataulujen tuonti onnistui!',
796796
);
797797

@@ -873,7 +873,7 @@ describe('Timetable import', () => {
873873
]);
874874
importTimetablesPage.getUploadButton().click();
875875

876-
importTimetablesPage.toast.checkSuccessToastHasMessage(
876+
importTimetablesPage.toast.expectSuccessToast(
877877
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
878878
);
879879

@@ -907,12 +907,12 @@ describe('Timetable import', () => {
907907
importTimetablesPage.selectFileToImport(IMPORT_FILENAME);
908908
importTimetablesPage.getUploadButton().click();
909909

910-
importTimetablesPage.toast.checkSuccessToastHasMessage(
910+
importTimetablesPage.toast.expectSuccessToast(
911911
`Tiedoston ${IMPORT_FILENAME} lataus onnistui`,
912912
);
913913
importTimetablesPage.getAbortButton().click();
914914
importTimetablesPage.confirmationDialog.getConfirmButton().click();
915-
importTimetablesPage.toast.checkSuccessToastHasMessage(
915+
importTimetablesPage.toast.expectSuccessToast(
916916
'Aikataulujen tuonti keskeytetty',
917917
);
918918

0 commit comments

Comments
 (0)