364 lines
12 KiB
JavaScript
364 lines
12 KiB
JavaScript
import { TEST_STUDENT1_USER_ID } from "../../consts";
|
|
import { login } from "../helpers";
|
|
|
|
describe("feedbackStudent.cy.js", () => {
|
|
beforeEach(() => {
|
|
cy.manageCommand("cypress_reset");
|
|
login("test-student1@example.com", "test");
|
|
});
|
|
|
|
describe("Feedback UK", () => {
|
|
beforeEach(() => {
|
|
cy.visit("/course/test-lehrgang/learn/fahrzeug/feedback");
|
|
});
|
|
|
|
it("can open feedback page", () => {
|
|
cy.testLearningContentTitle("Kursfeedback");
|
|
cy.testLearningContentSubtitle("Feedback");
|
|
});
|
|
|
|
it("can create feedback by giving answers to all steps", () => {
|
|
// initial wait for step 0 (or none with step==0) is required for pipelines
|
|
cy.url().should((url) => {
|
|
expect(url).to.match(/\/fahrzeug\/feedback(\?step=0)?$/);
|
|
});
|
|
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// fill feedback form
|
|
// step 1
|
|
cy.url().should("include", "step=1");
|
|
cy.get("[data-cy=\"question-1\"]").should(
|
|
"contain",
|
|
"Zufriedenheit insgesamt"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-4\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 2
|
|
cy.url().should("include", "step=2");
|
|
cy.get("[data-cy=\"question-2\"]").should(
|
|
"contain",
|
|
"Zielerreichung insgesamt"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
// the system should store after every step -> check stored data
|
|
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
|
|
(ac) => {
|
|
expect(ac.submitted).to.be.false;
|
|
expect(ac.data.satisfaction).to.equal(4);
|
|
expect(ac.data.instructor_competence).to.equal(null);
|
|
}
|
|
);
|
|
cy.get("[data-cy=\"radio-3\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 3
|
|
cy.url().should("include", "step=3");
|
|
cy.get("[data-cy=\"question-3\"]").should(
|
|
"contain",
|
|
"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=\"radio-80\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 4
|
|
cy.url().should("include", "step=4");
|
|
cy.get("[data-cy=\"question-4\"]").should(
|
|
"contain",
|
|
"Waren die Vorbereitungsaufträge klar und verständlich?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-false\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 5
|
|
cy.url().should("include", "step=5");
|
|
cy.get("[data-cy=\"question-5\"]").should(
|
|
"contain",
|
|
"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-2\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 6
|
|
cy.url().should("include", "step=6");
|
|
cy.get("[data-cy=\"question-6\"]").should(
|
|
"contain",
|
|
"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-1\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 7
|
|
cy.url().should("include", "step=7");
|
|
cy.get("[data-cy=\"question-7\"]").should(
|
|
"contain",
|
|
"Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"it-textarea-instructor_open_feedback\"]").type(
|
|
"Der Kursleiter ist eigentlich ganz nett."
|
|
);
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 8
|
|
cy.url().should("include", "step=8");
|
|
cy.get("[data-cy=\"question-8\"]").should(
|
|
"contain",
|
|
"Würdest du den Kurs weiterempfehlen?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-true\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 9
|
|
cy.url().should("include", "step=9");
|
|
cy.get("[data-cy=\"question-9\"]").should(
|
|
"contain",
|
|
"Was hat dir besonders gut gefallen?"
|
|
);
|
|
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"it-textarea-course_positive_feedback\"]").type(
|
|
"Ich bin zufrieden mit den meisten Dingen."
|
|
);
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 10
|
|
cy.url().should("include", "step=10");
|
|
cy.get("[data-cy=\"question-10\"]").should(
|
|
"contain",
|
|
"Wo siehst du Verbesserungspotential?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"it-textarea-course_negative_feedback\"]").type(
|
|
"Ich bin unzufrieden mit einigen Sachen."
|
|
);
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
cy.url().should("include", "step=11");
|
|
cy.get("[data-cy=\"sendFeedbackButton\"]").click();
|
|
cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
|
|
|
|
// marked complete in circle
|
|
cy.url().should((url) => {
|
|
expect(url).to.match(/\/fahrzeug#lu-transfer?$/);
|
|
});
|
|
cy.reload();
|
|
cy.get(
|
|
"[data-cy=\"test-lehrgang-lp-circle-fahrzeug-lc-feedback-status\"]"
|
|
).should("have.attr", "aria-checked", "true");
|
|
|
|
// reopening page should get directly to last step
|
|
cy.visit("/course/test-lehrgang/learn/fahrzeug/feedback");
|
|
cy.url().should("include", "step=11");
|
|
|
|
// check stored data
|
|
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
|
|
(ac) => {
|
|
expect(ac.submitted).to.be.true;
|
|
expect(ac.data).to.deep.equal({
|
|
course_negative_feedback: "Ich bin unzufrieden mit einigen Sachen.",
|
|
course_positive_feedback:
|
|
"Ich bin zufrieden mit den meisten Dingen.",
|
|
goal_attainment: 3,
|
|
instructor_competence: 2,
|
|
instructor_open_feedback:
|
|
"Der Kursleiter ist eigentlich ganz nett.",
|
|
instructor_respect: 1,
|
|
preparation_task_clarity: false,
|
|
proficiency: 80,
|
|
satisfaction: 4,
|
|
would_recommend: true,
|
|
feedback_type: "uk"
|
|
});
|
|
}
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("Feedback VV", () => {
|
|
beforeEach(() => {
|
|
cy.visit("/course/test-lehrgang/learn/reisen/feedback");
|
|
});
|
|
|
|
it("can open feedback page", () => {
|
|
cy.testLearningContentTitle("Feedback");
|
|
cy.testLearningContentSubtitle("Feedback");
|
|
});
|
|
|
|
it("can create feedback by giving answers to all steps", () => {
|
|
// initial wait for step 0 (or none with step==0) is required for pipelines
|
|
cy.url().should((url) => {
|
|
expect(url).to.match(/\/reisen\/feedback(\?step=0)?$/);
|
|
});
|
|
cy.get("[data-cy=\"introduction\"]").contains(
|
|
"Wir bitten dich um dein Feedback. Es hilft uns, damit wir deine Lernerlebnisse verbessern können."
|
|
);
|
|
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// fill feedback form
|
|
// step 1
|
|
cy.url().should("include", "step=1");
|
|
cy.get("[data-cy=\"question-1\"]").should(
|
|
"contain",
|
|
"Zufriedenheit insgesamt"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-4\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 2
|
|
cy.url().should("include", "step=2");
|
|
cy.get("[data-cy=\"question-2\"]").should(
|
|
"contain",
|
|
"Zielerreichung insgesamt"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
// the system should store after every step -> check stored data
|
|
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
|
|
(ac) => {
|
|
expect(ac.submitted).to.be.false;
|
|
expect(ac.data.satisfaction).to.equal(4);
|
|
expect(ac.data.course_positive_feedback).to.equal(null);
|
|
}
|
|
);
|
|
cy.get("[data-cy=\"radio-3\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 3
|
|
cy.url().should("include", "step=3");
|
|
cy.get("[data-cy=\"question-3\"]").should(
|
|
"contain",
|
|
"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=\"radio-80\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 4
|
|
cy.url().should("include", "step=4");
|
|
cy.get("[data-cy=\"question-4\"]").should(
|
|
"contain",
|
|
"Waren die Praxisaufträge klar und verständlich?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-false\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 5
|
|
cy.url().should("include", "step=5");
|
|
cy.get("[data-cy=\"question-5\"]").should(
|
|
"contain",
|
|
"Würdest du den Circle weiterempfehlen?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"radio-false\"]").click();
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 6
|
|
cy.url().should("include", "step=6");
|
|
cy.get("[data-cy=\"question-6\"]").should(
|
|
"contain",
|
|
"Was hat dir besonders gut gefallen?"
|
|
);
|
|
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"it-textarea-course_positive_feedback\"]").type(
|
|
"Der Circle ist eigentlich ganz nett."
|
|
);
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
// step 7
|
|
cy.url().should("include", "step=7");
|
|
cy.get("[data-cy=\"question-7\"]").should(
|
|
"contain",
|
|
"Wo siehst du Verbesserungspotential?"
|
|
);
|
|
cy.get("[data-cy=\"next-step\"]").should("be.disabled");
|
|
cy.get("[data-cy=\"it-textarea-course_negative_feedback\"]").type(
|
|
"Ich bin unzufrieden mit einigen Sachen."
|
|
);
|
|
cy.wait(200);
|
|
cy.learningContentMultiLayoutNextStep();
|
|
cy.wait(200);
|
|
|
|
cy.url().should("include", "step=8");
|
|
cy.get("[data-cy=\"sendFeedbackButton\"]").click();
|
|
cy.get("[data-cy=\"complete-and-continue\"]").click({ force: true });
|
|
|
|
// marked complete in circle
|
|
cy.url().should((url) => {
|
|
expect(url).to.match(/\/reisen#lu-transfer-reflexion-feedback?$/);
|
|
});
|
|
cy.reload();
|
|
cy.get(
|
|
"[data-cy=\"test-lehrgang-lp-circle-reisen-lc-feedback-status\"]"
|
|
).should("have.attr", "aria-checked", "true");
|
|
|
|
// reopening page should get directly to last step
|
|
cy.visit("/course/test-lehrgang/learn/reisen/feedback");
|
|
cy.url().should("include", "step=8");
|
|
|
|
// check stored data
|
|
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(
|
|
(ac) => {
|
|
expect(ac.submitted).to.be.true;
|
|
expect(ac.data).to.deep.equal({
|
|
course_negative_feedback: "Ich bin unzufrieden mit einigen Sachen.",
|
|
course_positive_feedback: "Der Circle ist eigentlich ganz nett.",
|
|
goal_attainment: 3,
|
|
preparation_task_clarity: false,
|
|
proficiency: 80,
|
|
satisfaction: 4,
|
|
would_recommend: false,
|
|
feedback_type: "vv"
|
|
});
|
|
}
|
|
);
|
|
});
|
|
});
|
|
});
|