Try to make cypress tests less flaky

This commit is contained in:
Daniel Egger 2022-09-14 16:13:37 +02:00
parent b7eb88e4d5
commit 5663fe1a74
2 changed files with 31 additions and 29 deletions

View File

@ -5,50 +5,62 @@ describe("circle page", () => {
cy.manageCommand("cypress_reset"); cy.manageCommand("cypress_reset");
login("admin", "test"); login("admin", "test");
cy.visit("/learn/versicherungsvermittlerin/analyse"); cy.visit("/learn/unit-test-lernpfad/unit-test-circle");
}); });
it("can open circle page", () => { it("can open circle page", () => {
cy.get('[data-cy="circle-title"]').should("contain", "Analyse"); cy.get('[data-cy="circle-title"]').should("contain", "Unit-Test Circle");
}); });
it("can toggle learning content", () => { it("can toggle learning content", () => {
cy.get('[data-cy="circle-title"]').should("contain", "Analyse"); cy.get('[data-cy="circle-title"]').should("contain", "Unit-Test Circle");
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox'
).click(); ).click();
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked'
).should("have.class", "cy-checkbox-checked"); ).should("have.class", "cy-checkbox-checked");
// completion data should still be there after reload // completion data should still be there after reload
cy.reload(); cy.reload();
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked'
).should("have.class", "cy-checkbox-checked"); ).should("have.class", "cy-checkbox-checked");
}); });
it("can open learning contents and complete them by continuing", () => { it("can open learning contents and complete them by continuing", () => {
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-ermittlung-des-kundenbedarfs"]' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-ermittlung-des-kundenbedarfs"]'
).click(); ).click();
cy.get('[data-cy="ln-title"]').should(
"contain",
"Ermittlung des Kundenbedarfs"
);
cy.get('[data-cy="complete-and-continue"]').click(); cy.get('[data-cy="complete-and-continue"]').click();
cy.get('[data-cy="complete-and-continue"]').click(); cy.get('[data-cy="ln-title"]').should(
cy.get('[data-cy="complete-and-continue"]').click(); "contain",
"Kundenbedürfnisse erkennen"
);
cy.get('[data-cy="close-learning-content"]').click(); cy.get('[data-cy="complete-and-continue"]').click();
cy.get('[data-cy="ln-title"]').should(
"contain",
"Was braucht eine Familie"
);
cy.get('[data-cy="complete-and-continue"]').click();
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-ermittlung-des-kundenbedarfs"] > .cy-checkbox-checked'
).should("have.class", "cy-checkbox-checked"); ).should("have.class", "cy-checkbox-checked");
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-kundenanalyse"] > .cy-checkbox-checked' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-kundenbedürfnisse-erkennen"] > .cy-checkbox-checked'
).should("have.class", "cy-checkbox-checked"); ).should("have.class", "cy-checkbox-checked");
cy.get( cy.get(
'[data-cy="versicherungsvermittlerin-circle-analyse-lc-kundenbedürfnisse-erkennen"] > .cy-checkbox-checked' '[data-cy="unit-test-lernpfad-circle-unit-test-circle-lc-was-braucht-eine-familie"] > .cy-checkbox-checked'
).should("have.class", "cy-checkbox-checked"); ).should("have.class", "cy-checkbox-checked");
}); });
@ -58,7 +70,7 @@ describe("circle page", () => {
cy.get('[data-cy="ln-title"]').should( cy.get('[data-cy="ln-title"]').should(
"contain", "contain",
'Einleitung Circle "Analyse"' 'Einleitung Circle "Unit-Test Circle"'
); );
cy.get('[data-cy="complete-and-continue"]').click(); cy.get('[data-cy="complete-and-continue"]').click();
@ -72,7 +84,7 @@ describe("circle page", () => {
it("can open learning content by url", () => { it("can open learning content by url", () => {
cy.visit( cy.visit(
"/learn/versicherungsvermittlerin/analyse/ermittlung-des-kundenbedarfs" "/learn/unit-test-lernpfad/unit-test-circle/ermittlung-des-kundenbedarfs"
); );
cy.get('[data-cy="ln-title"]').should( cy.get('[data-cy="ln-title"]').should(
"contain", "contain",

View File

@ -4,7 +4,7 @@ from wagtail.models import Site, Page
from vbv_lernwelt.core.admin import User from vbv_lernwelt.core.admin import User
from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \ from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \
LearningSequenceFactory, LearningContentFactory, VideoBlockFactory, PodcastBlockFactory, CompetenceBlockFactory, \ LearningSequenceFactory, LearningContentFactory, CompetenceBlockFactory, \
ExerciseBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory ExerciseBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory
@ -33,11 +33,7 @@ def create_circle_children(circle, title):
title=f'Einleitung Circle "{title}"', title=f'Einleitung Circle "{title}"',
parent=circle, parent=circle,
minutes=15, minutes=15,
contents=[('video', VideoBlockFactory( contents=[('competence', CompetenceBlockFactory())]
url='https://www.youtube.com/embed/qhPIfxS2hvI',
description='In dieser Circle zeigt dir ein Fachexperte anhand von Kundensituationen, wie du erfolgreich'
'den Kundenbedarf ermitteln, analysieren, priorisieren und anschliessend zusammenfassen kannst.'
))]
) )
LearningSequenceFactory(title='Beobachten', parent=circle, icon='it-icon-ls-watch') LearningSequenceFactory(title='Beobachten', parent=circle, icon='it-icon-ls-watch')
@ -57,10 +53,7 @@ def create_circle_children(circle, title):
title='Ermittlung des Kundenbedarfs', title='Ermittlung des Kundenbedarfs',
parent=circle, parent=circle,
minutes=30, minutes=30,
contents=[('podcast', PodcastBlockFactory( contents=[('competence', CompetenceBlockFactory())]
description='Die Ermittlung des Kundenbedarfs muss in einem eingehenden Gespräch herausgefunden werden. Höre dazu auch diesen Podcast an.',
url='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/325190984&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true',
))]
) )
LearningContentFactory( LearningContentFactory(
title='Kundenbedürfnisse erkennen', title='Kundenbedürfnisse erkennen',
@ -138,10 +131,7 @@ def create_simple_test_learning_path(user=None, skip_locales=True):
title='Einleitung Circle "Basis"', title='Einleitung Circle "Basis"',
parent=circle_basis, parent=circle_basis,
minutes=15, minutes=15,
contents=[('video', VideoBlockFactory( contents=[('competence', CompetenceBlockFactory())]
url='https://www.youtube.com/embed/qhPIfxS2hvI',
description='Basis Video'
))]
) )
LearningSequenceFactory(title='Beenden', parent=circle_basis, icon='it-icon-ls-end') LearningSequenceFactory(title='Beenden', parent=circle_basis, icon='it-icon-ls-end')
LearningContentFactory( LearningContentFactory(