Skip to content

Commit 893cdf6

Browse files
fix flaky tests
1 parent e29bc63 commit 893cdf6

File tree

3 files changed

+42
-53
lines changed

3 files changed

+42
-53
lines changed

frontend/cypress/e2e/smoke-test-03/23-a-class-seedlot-reg-form-ownership.cy.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,18 @@ describe('A Class Seedlot Registration form, Ownership', () => {
7171
.then(($checkbox) => {
7272
if ($checkbox.is(':not(:checked)')) {
7373
cy.get('#default-owner-checkbox').check({ force: true });
74-
// Save changes
75-
cy.saveSeedlotRegFormProgress();
74+
75+
// Inline wait for save confirmation
76+
cy.get('button.form-action-btn')
77+
.contains('Save')
78+
.click();
79+
80+
// Wait for the "Changes saved!" message
81+
cy.contains('Changes saved!', { timeout: 30000 }).should('be.visible');
82+
83+
// Optional: wait until any inline loading spinners disappear
84+
cy.get('svg.bx--inline-loading__spinner', { timeout: 30000 })
85+
.should('not.exist');
7686
}
7787
})
7888
.should('be.checked');

frontend/cypress/e2e/smoke-test-03/24-a-class-seedlot-reg-form-extraction.cy.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,33 +200,45 @@ describe('A Class Seedlot Registration form, Extraction and Storage', () => {
200200
});
201201

202202
it('Extraction Date inputs', () => {
203+
// Wait for end date input to be enabled
203204
cy.get('#ext-end-date')
205+
.should('not.be.disabled')
204206
.clear()
205207
.type('2024-05-28')
206208
.blur();
207209

208-
// Invalid start date
210+
// Wait for start date input to be enabled
209211
cy.get('#ext-start-date')
212+
.should('not.be.disabled')
210213
.clear()
211214
.type('2024-05-29')
212215
.blur();
213216

217+
// Check invalid date error messages
214218
cy.get(`.${prefix}--date-picker`)
215219
.find(`.${prefix}--form-requirement`)
216220
.should('have.length', 2)
217221
.and('contain.text', regFormData.extraction.invalidDateErrorMsg);
218222

219-
// Valid start date
223+
// Enter valid start date
220224
cy.get('#ext-start-date')
225+
.should('not.be.disabled')
221226
.clear()
222227
.type('2024-05-27')
223228
.blur();
224229

230+
// Ensure extraction agency checkbox is checked
225231
cy.get('#ext-agency-tsc-checkbox')
232+
.should('not.be.disabled')
226233
.check({ force: true });
227234

228235
// Save changes
229236
cy.saveSeedlotRegFormProgress();
237+
238+
// Retry-friendly check: make sure step shows 'Complete'
239+
cy.contains(`.${prefix}--progress-step-button`, 'Extraction')
240+
.find(`.${prefix}--assistive-text`)
241+
.should('contain.text', 'Complete');
230242
});
231243

232244
it('Edit Storage agency section details', () => {

frontend/cypress/e2e/smoke-test-04/32-a-class-seedlot-reg-form-orchard.cy.ts

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -543,75 +543,42 @@ describe('A Class Seedlot Registration form, Orchard', () => {
543543
});
544544

545545
it('Change pollen information', () => {
546-
cy.get('#pollen-contam-yes')
547-
.check({ force: true });
548-
549-
cy.get('#pollen-contam-yes')
550-
.should('be.checked');
551-
552-
cy.get('#orchard-breading-perc')
553-
.should('be.visible');
546+
cy.get('#pollen-contam-yes').check({ force: true }).should('be.checked');
554547

555-
cy.get('#orchard-is-regional')
556-
.should('be.visible');
557-
558-
cy.get('#orchard-is-regional')
559-
.should('be.checked');
548+
cy.get('#orchard-breading-perc').should('be.visible');
549+
cy.get('#orchard-is-regional').should('be.visible').should('be.checked');
560550

561551
cy.get('#orchard-breading-perc-helper-text')
562552
.should('have.text', regFormData.orchard.pollenHelperText);
563553

564-
// Check pollen breeding % error msg
565-
cy.get('#orchard-breading-perc')
566-
.clear()
567-
.type('-1', { delay: TYPE_DELAY })
568-
.blur();
569-
570-
cy.get('#orchard-breading-perc-error-msg')
571-
.should('have.text', regFormData.orchard.pollenError);
572-
573-
cy.get('#orchard-breading-perc')
574-
.clear()
575-
.type('101', { delay: TYPE_DELAY })
576-
.blur();
577-
578-
cy.get('#orchard-breading-perc-error-msg')
579-
.should('have.text', regFormData.orchard.pollenError);
580-
581-
cy.get('#orchard-breading-perc')
582-
.clear()
583-
.type('21.1576', { delay: TYPE_DELAY })
584-
.blur();
585-
586-
cy.get('#orchard-breading-perc-error-msg')
587-
.should('have.text', regFormData.orchard.pollenError);
554+
// Error checks
555+
const invalidValues = ['-1', '101', '21.1576'];
556+
invalidValues.forEach((val) => {
557+
cy.get('#orchard-breading-perc').clear().type(val, { delay: TYPE_DELAY }).blur();
558+
cy.get('#orchard-breading-perc-error-msg').should('have.text', regFormData.orchard.pollenError);
559+
});
588560

589-
cy.get('#orchard-breading-perc')
590-
.clear()
591-
.type('5', { delay: TYPE_DELAY })
592-
.blur();
561+
cy.get('#orchard-breading-perc').clear().type('5', { delay: TYPE_DELAY }).blur();
593562

594563
// Save changes
595564
cy.saveSeedlotRegFormProgress();
596565

597-
// Wait for 500ms to ensure the save is complete
598-
cy.wait(HALF_SECOND);
599-
600-
// Check complete status of Orchard step
566+
// Wait for the step to show 'Complete' instead of a fixed wait
601567
cy.contains(`.${prefix}--progress-step-button`, 'Orchard')
602568
.find(`.${prefix}--assistive-text`)
603-
.should('have.text', 'Complete');
569+
.should('contain.text', 'Complete');
604570
});
605571

606572
it('Step complete status', () => {
607-
// Press next button
608573
cy.get('.seedlot-registration-button-row')
609574
.find('button.form-action-btn')
610575
.contains('Next')
611576
.click();
612577

613-
// Check step complete status
578+
// Retry-friendly check for complete step
614579
cy.get(`.${prefix}--progress-step--complete`)
615-
.contains('Orchard');
580+
.contains('Orchard')
581+
.should('exist')
582+
.and('be.visible');
616583
});
617584
});

0 commit comments

Comments
 (0)