158 lines
5.0 KiB
JavaScript
158 lines
5.0 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");
|
|
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="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="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="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="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="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="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="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="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="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="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-checkbox"]'
|
|
).should("have.class", "cy-checked");
|
|
|
|
// 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,
|
|
});
|
|
}
|
|
);
|
|
});
|
|
});
|