feat: circle cleanup

This commit is contained in:
Reto Aebersold 2024-02-20 10:56:06 +01:00
parent d95bfd9495
commit 4e3b4785f0
7 changed files with 169 additions and 182 deletions

View File

@ -21,11 +21,13 @@ withDefaults(defineProps<Props>(), {
" "
v-if="category === 'certificate'" v-if="category === 'certificate'"
class="h-[32px] w-[32px]" class="h-[32px] w-[32px]"
:aria-checked="completed"
></component> ></component>
<div <div
v-else v-else
class="flex h-[32px] w-[32px] items-center justify-center rounded-full border" class="flex h-[32px] w-[32px] items-center justify-center rounded-full border"
:class="[completed ? 'border-black' : 'border-gray-500']" :class="[completed ? 'border-black' : 'border-gray-500']"
:aria-checked="completed"
> >
<it-icon-check v-if="completed" class="block h-6 w-6 text-black"></it-icon-check> <it-icon-check v-if="completed" class="block h-6 w-6 text-black"></it-icon-check>
</div> </div>

View File

@ -142,6 +142,7 @@ type LearninContentWithCompetenceCertificate =
<div class="pb-6"> <div class="pb-6">
<div class="flex items-center gap-4"> <div class="flex items-center gap-4">
<CompletionStatus <CompletionStatus
:data-cy="`${learningContent.slug}-status`"
:completed="learningContent.completion_status === 'SUCCESS'" :completed="learningContent.completion_status === 'SUCCESS'"
:category=" :category="
belongsToCompetenceCertificate(learningContent) belongsToCompetenceCertificate(learningContent)
@ -226,7 +227,14 @@ type LearninContentWithCompetenceCertificate =
:data-cy="`${learningUnit.slug}`" :data-cy="`${learningUnit.slug}`"
@click="!props.readonly && circleStore.openSelfEvaluation(learningUnit)" @click="!props.readonly && circleStore.openSelfEvaluation(learningUnit)"
> >
<div class="flex items-center gap-4"> <div
class="flex items-center gap-4"
:data-cy="
performanceCriteriaHasStatus(learningUnit.performance_criteria)
? 'status'
: 'no-status'
"
>
<CompletionStatus /> <CompletionStatus />
{{ $t("a.Selbsteinschätzung") }} {{ $t("a.Selbsteinschätzung") }}
</div> </div>
@ -235,7 +243,7 @@ type LearninContentWithCompetenceCertificate =
v-if="performanceCriteriaHasStatus(learningUnit.performance_criteria)" v-if="performanceCriteriaHasStatus(learningUnit.performance_criteria)"
class="flex items-center space-x-2 pl-12" class="flex items-center space-x-2 pl-12"
> >
<it-icon-smiley-happy></it-icon-smiley-happy> <it-icon-smiley-happy data-cy="success"></it-icon-smiley-happy>
<span class="pr-2"> <span class="pr-2">
{{ {{
performanceCriteriaStatusCount( performanceCriteriaStatusCount(
@ -244,7 +252,7 @@ type LearninContentWithCompetenceCertificate =
) )
}} }}
</span> </span>
<it-icon-smiley-thinking></it-icon-smiley-thinking> <it-icon-smiley-thinking data-cy="fail"></it-icon-smiley-thinking>
<span class="pr-2"> <span class="pr-2">
{{ {{
performanceCriteriaStatusCount( performanceCriteriaStatusCount(
@ -253,7 +261,7 @@ type LearninContentWithCompetenceCertificate =
) )
}} }}
</span> </span>
<it-icon-smiley-neutral></it-icon-smiley-neutral> <it-icon-smiley-neutral data-cy="unknown"></it-icon-smiley-neutral>
<span> <span>
{{ {{
performanceCriteriaStatusCount( performanceCriteriaStatusCount(

View File

@ -113,8 +113,8 @@ function completePraxisAssignment() {
}); });
cy.reload(); cy.reload();
cy.get( cy.get(
"[data-cy=\"test-lehrgang-lp-circle-reisen-lc-mein-kundenstamm-checkbox\"]" "[data-cy=\"test-lehrgang-lp-circle-reisen-lc-mein-kundenstamm-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
} }
describe("assignmentStudent.cy.js", () => { describe("assignmentStudent.cy.js", () => {
@ -338,8 +338,8 @@ describe("assignmentStudent.cy.js", () => {
cy.visit("/course/test-lehrgang/learn/fahrzeug/"); cy.visit("/course/test-lehrgang/learn/fahrzeug/");
cy.get( cy.get(
"[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice-checkbox\"]" "[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
//reopening page should get directly to last step //reopening page should get directly to last step
cy.visit( cy.visit(

View File

@ -9,71 +9,49 @@ describe("circle.cy.js", () => {
}); });
it("can open circle page", () => { it("can open circle page", () => {
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
});
it("can toggle learning content", () => {
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug");
cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-checkbox"]'
).should("have.class", "cy-unchecked");
cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-checkbox"]'
).click();
cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-checkbox"]'
).should("have.class", "cy-checked");
// completion data should still be there after reload
cy.reload();
cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-checkbox"]'
).should("have.class", "cy-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="test-lehrgang-lp-circle-fahrzeug-lc-verschaffe-dir-einen-überblick"]' "[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-verschaffe-dir-einen-überblick\"]"
).click(); ).click();
cy.get('[data-cy="lc-title"]').should( cy.get("[data-cy=\"lc-title\"]").should(
"contain", "contain",
"Verschaffe dir einen Überblick" "Verschaffe dir einen Überblick"
); );
cy.get('[data-cy="complete-and-continue"]').click({ force: true }); cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
cy.get('[data-cy="ls-continue-button"]').click(); cy.get("[data-cy=\"ls-continue-button\"]").click();
cy.get('[data-cy="lc-title"]').should( cy.get("[data-cy=\"lc-title\"]").should(
"contain", "contain",
"Handlungsfeld «Fahrzeug»" "Handlungsfeld «Fahrzeug»"
); );
cy.get('[data-cy="complete-and-continue"]').click({ force: true }); cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-verschaffe-dir-einen-überblick-checkbox"]' "[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-verschaffe-dir-einen-überblick-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-checkbox"]' "[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-handlungsfeld-fahrzeug-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
}); });
it("continue button works", () => { it("continue button works", () => {
cy.get('[data-cy="ls-continue-button"]').should("contain", "Los geht's"); cy.get("[data-cy=\"ls-continue-button\"]").should("contain", "Los geht's");
cy.get('[data-cy="ls-continue-button"]').click(); cy.get("[data-cy=\"ls-continue-button\"]").click();
cy.get('[data-cy="lc-title"]').should( cy.get("[data-cy=\"lc-title\"]").should(
"contain", "contain",
"Verschaffe dir einen Überblick" "Verschaffe dir einen Überblick"
); );
cy.get('[data-cy="complete-and-continue"]').click({ force: true }); cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
cy.get('[data-cy="ls-continue-button"]').should("contain", "Weiter geht's"); cy.get("[data-cy=\"ls-continue-button\"]").should("contain", "Weiter geht's");
cy.get('[data-cy="ls-continue-button"]').click(); cy.get("[data-cy=\"ls-continue-button\"]").click();
cy.get('[data-cy="lc-title"]').should( cy.get("[data-cy=\"lc-title\"]").should(
"contain", "contain",
"Handlungsfeld «Fahrzeug»" "Handlungsfeld «Fahrzeug»"
); );
@ -81,43 +59,43 @@ describe("circle.cy.js", () => {
it("can open learning content by url", () => { it("can open learning content by url", () => {
cy.visit("/course/test-lehrgang/learn/fahrzeug/handlungsfeld-fahrzeug"); cy.visit("/course/test-lehrgang/learn/fahrzeug/handlungsfeld-fahrzeug");
cy.get('[data-cy="lc-title"]').should( cy.get("[data-cy=\"lc-title\"]").should(
"contain", "contain",
"Handlungsfeld «Fahrzeug»" "Handlungsfeld «Fahrzeug»"
); );
cy.get('[data-cy="close-learning-content"]').click(); cy.get("[data-cy=\"close-learning-content\"]").click();
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
}); });
it("checks number of sequences and contents", () => { it("checks number of sequences and contents", () => {
cy.get('[data-cy="lp-learning-sequence"]').should("have.length", 3); cy.get("[data-cy=\"lp-learning-sequence\"]").should("have.length", 3);
cy.get('[data-cy="lp-learning-sequence"]') cy.get("[data-cy=\"lp-learning-sequence\"]")
.first() .first()
.should("contain", "Vorbereitung"); .should("contain", "Vorbereitung");
cy.get('[data-cy="lp-learning-sequence"]') cy.get("[data-cy=\"lp-learning-sequence\"]")
.eq(1) .eq(1)
.should("contain", "Training"); .should("contain", "Training");
cy.get('[data-cy="lp-learning-sequence"]') cy.get("[data-cy=\"lp-learning-sequence\"]")
.last() .last()
.should("contain", "Transfer"); .should("contain", "Transfer");
cy.get('[data-cy="lp-learning-content"]').should("have.length", 10); cy.get("[data-cy=\"lp-learning-content\"]").should("have.length", 10);
cy.get('[data-cy="lp-learning-content"]') cy.get("[data-cy=\"lp-learning-content\"]")
.first() .first()
.should("contain", "Verschaffe dir einen Überblick"); .should("contain", "Verschaffe dir einen Überblick");
cy.get('[data-cy="lp-learning-content"]') cy.get("[data-cy=\"lp-learning-content\"]")
.eq(4) .eq(4)
.should("contain", "Präsenzkurs Fahrzeug"); .should("contain", "Präsenzkurs Fahrzeug");
cy.get('[data-cy="lp-learning-content"]') cy.get("[data-cy=\"lp-learning-content\"]")
.eq(7) .eq(7)
.should("contain", "Reflexion"); .should("contain", "Reflexion");
cy.get('[data-cy="lp-learning-content"]') cy.get("[data-cy=\"lp-learning-content\"]")
.last() .last()
.should("contain", "Feedback"); .should("contain", "Feedback");
cy.visit("/course/test-lehrgang/learn/reisen"); cy.visit("/course/test-lehrgang/learn/reisen");
cy.get('[data-cy="lp-learning-sequence"]').should("have.length", 3); cy.get("[data-cy=\"lp-learning-sequence\"]").should("have.length", 3);
cy.get('[data-cy="lp-learning-content"]').should("have.length", 9); cy.get("[data-cy=\"lp-learning-content\"]").should("have.length", 9);
}); });
}); });

View File

@ -12,66 +12,66 @@ describe("selfEvaluation.cy.js", () => {
}); });
it("self evaluation should be neutral", () => { it("self evaluation should be neutral", () => {
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]') cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]")
.find('[data-cy="unknown"]') .find("[data-cy=\"no-status\"]")
.should("exist"); .should("exist");
}); });
it("self evaluation from KompetenzNavi", () => { it("self evaluation from KompetenzNavi", () => {
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]') cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]")
.find('[data-cy="unknown"]') .find("[data-cy=\"no-status\"]")
.should("exist"); .should("exist");
// data in KompetenzNavi/Übersicht is correct // data in KompetenzNavi/Übersicht is correct
cy.visit("/course/test-lehrgang/competence"); cy.visit("/course/test-lehrgang/competence");
cy.get('[data-cy="self-evaluation-fail"]').should("have.text", "0"); cy.get("[data-cy=\"self-evaluation-fail\"]").should("have.text", "0");
cy.get('[data-cy="self-evaluation-success"]').should("have.text", "0"); cy.get("[data-cy=\"self-evaluation-success\"]").should("have.text", "0");
cy.get('[data-cy="self-evaluation-unknown"]').should("have.text", "4"); cy.get("[data-cy=\"self-evaluation-unknown\"]").should("have.text", "4");
// data in KompetenzNavi/Selbsteinschätzungen is correct // data in KompetenzNavi/Selbsteinschätzungen is correct
cy.visit("/course/test-lehrgang/competence/criteria"); cy.visit("/course/test-lehrgang/competence/criteria");
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-fail"]').should( cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-fail\"]").should(
"have.text", "have.text",
"0" "0"
); );
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-success"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-success\"]"
).should("have.text", "0"); ).should("have.text", "0");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-unknown"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-unknown\"]"
).should("have.text", "2"); ).should("have.text", "2");
// it can open self evaluation from within KompetenzNavi // it can open self evaluation from within KompetenzNavi
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-open"]').click(); cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-open\"]").click();
// starting the self evaluation will return to KompetenzNavi // starting the self evaluation will return to KompetenzNavi
cy.makeSelfEvaluation([true, false]); cy.makeSelfEvaluation([true, false]);
cy.url().should("include", "/course/test-lehrgang/competence/criteria"); cy.url().should("include", "/course/test-lehrgang/competence/criteria");
// check data again on KompetenzNavi // check data again on KompetenzNavi
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-fail"]').should( cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-fail\"]").should(
"have.text", "have.text",
"1" "1"
); );
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-success"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-success\"]"
).should("have.text", "1"); ).should("have.text", "1");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-unknown"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-unknown\"]"
).should("have.text", "0"); ).should("have.text", "0");
// data in KompetenzNavi/Übersicht is correct // data in KompetenzNavi/Übersicht is correct
cy.visit("/course/test-lehrgang/competence"); cy.visit("/course/test-lehrgang/competence");
cy.get('[data-cy="self-evaluation-fail"]').should("have.text", "1"); cy.get("[data-cy=\"self-evaluation-fail\"]").should("have.text", "1");
cy.get('[data-cy="self-evaluation-success"]').should("have.text", "1"); cy.get("[data-cy=\"self-evaluation-success\"]").should("have.text", "1");
cy.get('[data-cy="self-evaluation-unknown"]').should("have.text", "2"); cy.get("[data-cy=\"self-evaluation-unknown\"]").should("have.text", "2");
}); });
it("should be able to make a happy self evaluation", () => { it("should be able to make a happy self evaluation", () => {
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]').click(); cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]").click();
cy.makeSelfEvaluation([true, true]); cy.makeSelfEvaluation([true, true]);
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]') cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]")
.find('[data-cy="success"]') .find("[data-cy=\"success\"]")
.should("exist"); .should("exist");
// starting the self evaluation from circle should return to circle // starting the self evaluation from circle should return to circle
@ -79,57 +79,57 @@ describe("selfEvaluation.cy.js", () => {
// data in KompetenzNavi / Selbsteinschätzungen is correct // data in KompetenzNavi / Selbsteinschätzungen is correct
cy.visit("/course/test-lehrgang/competence/criteria"); cy.visit("/course/test-lehrgang/competence/criteria");
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-fail"]').should( cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-fail\"]").should(
"have.text", "have.text",
"0" "0"
); );
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-success"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-success\"]"
).should("have.text", "2"); ).should("have.text", "2");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-unknown"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-unknown\"]"
).should("have.text", "0"); ).should("have.text", "0");
}); });
it("should be able to make a fail self evaluation", () => { it("should be able to make a fail self evaluation", () => {
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]').click(); cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]").click();
cy.makeSelfEvaluation([false, false]); cy.makeSelfEvaluation([false, false]);
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]') cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]")
.find('[data-cy="fail"]') .find("[data-cy=\"fail\"]")
.should("exist"); .should("exist");
// data in KompetenzNavi / Selbsteinschätzungen is correct // data in KompetenzNavi / Selbsteinschätzungen is correct
cy.visit("/course/test-lehrgang/competence/criteria"); cy.visit("/course/test-lehrgang/competence/criteria");
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-fail"]').should( cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-fail\"]").should(
"have.text", "have.text",
"2" "2"
); );
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-success"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-success\"]"
).should("have.text", "0"); ).should("have.text", "0");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-unknown"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-unknown\"]"
).should("have.text", "0"); ).should("have.text", "0");
}); });
it("should be able to make a mixed self evaluation", () => { it("should be able to make a mixed self evaluation", () => {
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]').click(); cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]").click();
cy.makeSelfEvaluation([false, true]); cy.makeSelfEvaluation([false, true]);
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen"]') cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen\"]")
.find('[data-cy="fail"]') .find("[data-cy=\"fail\"]")
.should("exist"); .should("exist");
// data in KompetenzNavi / Selbsteinschätzungen is correct // data in KompetenzNavi / Selbsteinschätzungen is correct
cy.visit("/course/test-lehrgang/competence/criteria"); cy.visit("/course/test-lehrgang/competence/criteria");
cy.get('[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-fail"]').should( cy.get("[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-fail\"]").should(
"have.text", "have.text",
"1" "1"
); );
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-success"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-success\"]"
).should("have.text", "1"); ).should("have.text", "1");
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lu-reisen-unknown"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lu-reisen-unknown\"]"
).should("have.text", "0"); ).should("have.text", "0");
}); });
}); });

View File

@ -30,23 +30,23 @@ describe("feedbackStudent.cy.js", () => {
// fill feedback form // fill feedback form
// step 1 // step 1
cy.url().should("include", "step=1"); cy.url().should("include", "step=1");
cy.get('[data-cy="question-1"]').should( cy.get("[data-cy=\"question-1\"]").should(
"contain", "contain",
"Zufriedenheit insgesamt" "Zufriedenheit insgesamt"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-4"]').click(); cy.get("[data-cy=\"radio-4\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 2 // step 2
cy.url().should("include", "step=2"); cy.url().should("include", "step=2");
cy.get('[data-cy="question-2"]').should( cy.get("[data-cy=\"question-2\"]").should(
"contain", "contain",
"Zielerreichung insgesamt" "Zielerreichung insgesamt"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
// the system should store after every step -> check stored data // the system should store after every step -> check stored data
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then( cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
(ac) => { (ac) => {
@ -55,67 +55,67 @@ describe("feedbackStudent.cy.js", () => {
expect(ac.data.instructor_competence).to.equal(null); expect(ac.data.instructor_competence).to.equal(null);
} }
); );
cy.get('[data-cy="radio-3"]').click(); cy.get("[data-cy=\"radio-3\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 3 // step 3
cy.url().should("include", "step=3"); cy.url().should("include", "step=3");
cy.get('[data-cy="question-3"]').should( cy.get("[data-cy=\"question-3\"]").should(
"contain", "contain",
"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?" "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-80"]').click(); cy.get("[data-cy=\"radio-80\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 4 // step 4
cy.url().should("include", "step=4"); cy.url().should("include", "step=4");
cy.get('[data-cy="question-4"]').should( cy.get("[data-cy=\"question-4\"]").should(
"contain", "contain",
"Waren die Vorbereitungsaufträge klar und verständlich?" "Waren die Vorbereitungsaufträge klar und verständlich?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-false"]').click(); cy.get("[data-cy=\"radio-false\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 5 // step 5
cy.url().should("include", "step=5"); cy.url().should("include", "step=5");
cy.get('[data-cy="question-5"]').should( cy.get("[data-cy=\"question-5\"]").should(
"contain", "contain",
"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?" "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-2"]').click(); cy.get("[data-cy=\"radio-2\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 6 // step 6
cy.url().should("include", "step=6"); cy.url().should("include", "step=6");
cy.get('[data-cy="question-6"]').should( cy.get("[data-cy=\"question-6\"]").should(
"contain", "contain",
"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?" "Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-1"]').click(); cy.get("[data-cy=\"radio-1\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 7 // step 7
cy.url().should("include", "step=7"); cy.url().should("include", "step=7");
cy.get('[data-cy="question-7"]').should( cy.get("[data-cy=\"question-7\"]").should(
"contain", "contain",
"Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?" "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="it-textarea-instructor_open_feedback"]').type( cy.get("[data-cy=\"it-textarea-instructor_open_feedback\"]").type(
"Der Kursleiter ist eigentlich ganz nett." "Der Kursleiter ist eigentlich ganz nett."
); );
cy.wait(200); cy.wait(200);
@ -124,25 +124,25 @@ describe("feedbackStudent.cy.js", () => {
// step 8 // step 8
cy.url().should("include", "step=8"); cy.url().should("include", "step=8");
cy.get('[data-cy="question-8"]').should( cy.get("[data-cy=\"question-8\"]").should(
"contain", "contain",
"Würdest du den Kurs weiterempfehlen?" "Würdest du den Kurs weiterempfehlen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-true"]').click(); cy.get("[data-cy=\"radio-true\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 9 // step 9
cy.url().should("include", "step=9"); cy.url().should("include", "step=9");
cy.get('[data-cy="question-9"]').should( cy.get("[data-cy=\"question-9\"]").should(
"contain", "contain",
"Was hat dir besonders gut gefallen?" "Was hat dir besonders gut gefallen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="it-textarea-course_positive_feedback"]').type( cy.get("[data-cy=\"it-textarea-course_positive_feedback\"]").type(
"Ich bin zufrieden mit den meisten Dingen." "Ich bin zufrieden mit den meisten Dingen."
); );
cy.wait(200); cy.wait(200);
@ -151,12 +151,12 @@ describe("feedbackStudent.cy.js", () => {
// step 10 // step 10
cy.url().should("include", "step=10"); cy.url().should("include", "step=10");
cy.get('[data-cy="question-10"]').should( cy.get("[data-cy=\"question-10\"]").should(
"contain", "contain",
"Wo siehst du Verbesserungspotential?" "Wo siehst du Verbesserungspotential?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="it-textarea-course_negative_feedback"]').type( cy.get("[data-cy=\"it-textarea-course_negative_feedback\"]").type(
"Ich bin unzufrieden mit einigen Sachen." "Ich bin unzufrieden mit einigen Sachen."
); );
cy.wait(200); cy.wait(200);
@ -164,8 +164,8 @@ describe("feedbackStudent.cy.js", () => {
cy.wait(200); cy.wait(200);
cy.url().should("include", "step=11"); cy.url().should("include", "step=11");
cy.get('[data-cy="sendFeedbackButton"]').click(); cy.get("[data-cy=\"sendFeedbackButton\"]").click();
cy.get('[data-cy="complete-and-continue"]').click({ force: true }); cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
// marked complete in circle // marked complete in circle
cy.url().should((url) => { cy.url().should((url) => {
@ -173,8 +173,8 @@ describe("feedbackStudent.cy.js", () => {
}); });
cy.reload(); cy.reload();
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-feedback-checkbox"]' "[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-feedback-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
// reopening page should get directly to last step // reopening page should get directly to last step
cy.visit("/course/test-lehrgang/learn/fahrzeug/feedback"); cy.visit("/course/test-lehrgang/learn/fahrzeug/feedback");
@ -197,7 +197,7 @@ describe("feedbackStudent.cy.js", () => {
proficiency: 80, proficiency: 80,
satisfaction: 4, satisfaction: 4,
would_recommend: true, would_recommend: true,
feedback_type: "uk", feedback_type: "uk"
}); });
} }
); );
@ -219,7 +219,7 @@ describe("feedbackStudent.cy.js", () => {
cy.url().should((url) => { cy.url().should((url) => {
expect(url).to.match(/\/reisen\/feedback(\?step=0)?$/); expect(url).to.match(/\/reisen\/feedback(\?step=0)?$/);
}); });
cy.get('[data-cy="introduction"]').contains( cy.get("[data-cy=\"introduction\"]").contains(
"Wir bitten dich um dein Feedback. Es hilft uns, damit wir deine Lernerlebnisse verbessern können." "Wir bitten dich um dein Feedback. Es hilft uns, damit wir deine Lernerlebnisse verbessern können."
); );
@ -230,23 +230,23 @@ describe("feedbackStudent.cy.js", () => {
// fill feedback form // fill feedback form
// step 1 // step 1
cy.url().should("include", "step=1"); cy.url().should("include", "step=1");
cy.get('[data-cy="question-1"]').should( cy.get("[data-cy=\"question-1\"]").should(
"contain", "contain",
"Zufriedenheit insgesamt" "Zufriedenheit insgesamt"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-4"]').click(); cy.get("[data-cy=\"radio-4\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 2 // step 2
cy.url().should("include", "step=2"); cy.url().should("include", "step=2");
cy.get('[data-cy="question-2"]').should( cy.get("[data-cy=\"question-2\"]").should(
"contain", "contain",
"Zielerreichung insgesamt" "Zielerreichung insgesamt"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
// the system should store after every step -> check stored data // the system should store after every step -> check stored data
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then( cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
(ac) => { (ac) => {
@ -255,56 +255,56 @@ describe("feedbackStudent.cy.js", () => {
expect(ac.data.course_positive_feedback).to.equal(null); expect(ac.data.course_positive_feedback).to.equal(null);
} }
); );
cy.get('[data-cy="radio-3"]').click(); cy.get("[data-cy=\"radio-3\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 3 // step 3
cy.url().should("include", "step=3"); cy.url().should("include", "step=3");
cy.get('[data-cy="question-3"]').should( cy.get("[data-cy=\"question-3\"]").should(
"contain", "contain",
"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Circle?" "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Circle?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-80"]').click(); cy.get("[data-cy=\"radio-80\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 4 // step 4
cy.url().should("include", "step=4"); cy.url().should("include", "step=4");
cy.get('[data-cy="question-4"]').should( cy.get("[data-cy=\"question-4\"]").should(
"contain", "contain",
"Waren die Praxisaufträge klar und verständlich?" "Waren die Praxisaufträge klar und verständlich?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-false"]').click(); cy.get("[data-cy=\"radio-false\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 5 // step 5
cy.url().should("include", "step=5"); cy.url().should("include", "step=5");
cy.get('[data-cy="question-5"]').should( cy.get("[data-cy=\"question-5\"]").should(
"contain", "contain",
"Würdest du den Circle weiterempfehlen?" "Würdest du den Circle weiterempfehlen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="radio-false"]').click(); cy.get("[data-cy=\"radio-false\"]").click();
cy.wait(200); cy.wait(200);
cy.learningContentMultiLayoutNextStep(); cy.learningContentMultiLayoutNextStep();
cy.wait(200); cy.wait(200);
// step 6 // step 6
cy.url().should("include", "step=6"); cy.url().should("include", "step=6");
cy.get('[data-cy="question-6"]').should( cy.get("[data-cy=\"question-6\"]").should(
"contain", "contain",
"Was hat dir besonders gut gefallen?" "Was hat dir besonders gut gefallen?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="it-textarea-course_positive_feedback"]').type( cy.get("[data-cy=\"it-textarea-course_positive_feedback\"]").type(
"Der Circle ist eigentlich ganz nett." "Der Circle ist eigentlich ganz nett."
); );
cy.wait(200); cy.wait(200);
@ -313,12 +313,12 @@ describe("feedbackStudent.cy.js", () => {
// step 7 // step 7
cy.url().should("include", "step=7"); cy.url().should("include", "step=7");
cy.get('[data-cy="question-7"]').should( cy.get("[data-cy=\"question-7\"]").should(
"contain", "contain",
"Wo siehst du Verbesserungspotential?" "Wo siehst du Verbesserungspotential?"
); );
cy.get('[data-cy="next-step"]').should("be.disabled"); cy.get("[data-cy=\"next-step\"]").should("be.disabled");
cy.get('[data-cy="it-textarea-course_negative_feedback"]').type( cy.get("[data-cy=\"it-textarea-course_negative_feedback\"]").type(
"Ich bin unzufrieden mit einigen Sachen." "Ich bin unzufrieden mit einigen Sachen."
); );
cy.wait(200); cy.wait(200);
@ -326,8 +326,8 @@ describe("feedbackStudent.cy.js", () => {
cy.wait(200); cy.wait(200);
cy.url().should("include", "step=8"); cy.url().should("include", "step=8");
cy.get('[data-cy="sendFeedbackButton"]').click(); cy.get("[data-cy=\"sendFeedbackButton\"]").click();
cy.get('[data-cy="complete-and-continue"]').click({ force: true }); cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
// marked complete in circle // marked complete in circle
cy.url().should((url) => { cy.url().should((url) => {
@ -335,8 +335,8 @@ describe("feedbackStudent.cy.js", () => {
}); });
cy.reload(); cy.reload();
cy.get( cy.get(
'[data-cy="test-lehrgang-lp-circle-reisen-lc-feedback-checkbox"]' "[data-cy=\"test-lehrgang-lp-circle-reisen-lc-feedback-status\"]"
).should("have.class", "cy-checked"); ).should("have.attr", "aria-checked", "true");
// reopening page should get directly to last step // reopening page should get directly to last step
cy.visit("/course/test-lehrgang/learn/reisen/feedback"); cy.visit("/course/test-lehrgang/learn/reisen/feedback");
@ -354,7 +354,7 @@ describe("feedbackStudent.cy.js", () => {
proficiency: 80, proficiency: 80,
satisfaction: 4, satisfaction: 4,
would_recommend: false, would_recommend: false,
feedback_type: "vv", feedback_type: "vv"
}); });
} }
); );

View File

@ -8,55 +8,54 @@ describe("learningPath.cy.js", () => {
}); });
it("can open learningPath page", () => { it("can open learningPath page", () => {
cy.get('[data-cy="learning-path-title"]').should( cy.get("[data-cy=\"learning-path-title\"]").should(
"contain", "contain",
"Test Lehrgang" "Test Lehrgang"
); );
}); });
it("can click on circle to open it", () => { it("can click on circle to open it", () => {
cy.get('[data-cy="circle-Fahrzeug"]').click({ force: true }); cy.get("[data-cy=\"circle-Fahrzeug\"]").click({ force: true });
cy.url().should("include", "/course/test-lehrgang/learn/fahrzeug"); cy.url().should("include", "/course/test-lehrgang/learn/fahrzeug");
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
}); });
it("switch between list and path view", () => { it("switch between list and path view", () => {
cy.get('[data-cy="lp-path-view"]').should("be.visible"); cy.get("[data-cy=\"lp-path-view\"]").should("be.visible");
cy.get('[data-cy="view-switch"]').click(); cy.get("[data-cy=\"view-switch\"]").click();
cy.get('[data-cy="lp-list-view"]').should("be.visible"); cy.get("[data-cy=\"lp-list-view\"]").should("be.visible");
cy.get('[data-cy="view-switch"]').click(); cy.get("[data-cy=\"view-switch\"]").click();
cy.get('[data-cy="lp-path-view"]').should("be.visible"); cy.get("[data-cy=\"lp-path-view\"]").should("be.visible");
}); });
it("weiter gehts button will open next circle", () => { it("weiter gehts button will open next circle", () => {
// first click will open first circle // first click will open first circle
cy.get('[data-cy="lp-continue-button"]') cy.get("[data-cy=\"lp-continue-button\"]")
.filter(":visible") .filter(":visible")
.should("contain", "Los geht's") .should("contain", "Los geht's")
.click(); .click();
cy.get('[data-cy="circle-title"]').should("contain", "Fahrzeug"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Fahrzeug");
cy.get('[data-cy="back-to-learning-path-button"]').click(); cy.get("[data-cy=\"back-to-learning-path-button\"]").click();
// mark a learning content in second circle // mark a learning content in second circle
cy.get('[data-cy="circle-Reisen"]').click({ force: true }); cy.get("[data-cy=\"circle-Reisen\"]").click({ force: true });
cy.get( cy.get("[data-cy=\"ls-continue-button\"]").click();
'[data-cy="test-lehrgang-lp-circle-reisen-lc-fachcheck-reisen-checkbox"]' cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
).click(); cy.get("[data-cy=\"back-to-learning-path-button\"]").click();
cy.get('[data-cy="back-to-learning-path-button"]').click();
// click on continue should go to unit-test-circle // click on continue should go to unit-test-circle
cy.get('[data-cy="lp-continue-button"]') cy.get("[data-cy=\"lp-continue-button\"]")
.filter(":visible") .filter(":visible")
.should("contain", "Weiter geht's") .should("contain", "Weiter geht's")
.click(); .click();
cy.get('[data-cy="circle-title"]').should("contain", "Reisen"); cy.get("[data-cy=\"circle-title\"]").should("contain", "Reisen");
}); });
it("checks contents", () => { it("checks contents", () => {
cy.get('[data-cy="lp-topic"]').should("have.length", 2); cy.get("[data-cy=\"lp-topic\"]").should("have.length", 2);
cy.get('[data-cy="lp-topic"]').first().should("contain", "Circle ÜK"); cy.get("[data-cy=\"lp-topic\"]").first().should("contain", "Circle ÜK");
cy.get('[data-cy="lp-topic"]').eq(1).should("contain", "Circle VV"); cy.get("[data-cy=\"lp-topic\"]").eq(1).should("contain", "Circle VV");
cy.get(".cy-lp-circle").should("have.length", 2); cy.get(".cy-lp-circle").should("have.length", 2);
cy.get(".cy-lp-circle").first().should("contain", "Fahrzeug"); cy.get(".cy-lp-circle").first().should("contain", "Fahrzeug");