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", }); }, ); }); }); describe("Feedback Automobilgewerbe", () => { beforeEach(() => { cy.visit("/course/test-lehrgang/learn/automobilgewerbe/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(/\/automobilgewerbe\/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", "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 5 cy.url().should("include", "step=5"); cy.get('[data-cy="question-5"]').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 6 cy.url().should("include", "step=6"); cy.get('[data-cy="question-6"]').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=7"); 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( /\/automobilgewerbe#lu-transfer-reflexion-feedback?$/, ); }); cy.reload(); cy.get( '[data-cy="test-lehrgang-lp-circle-automobilgewerbe-lc-feedback-status"]', ).should("have.attr", "aria-checked", "true"); // reopening page should get directly to last step cy.visit("/course/test-lehrgang/learn/automobilgewerbe/feedback"); cy.url().should("include", "step=7"); // 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, proficiency: 80, satisfaction: 4, would_recommend: false, feedback_type: "automobilgewerbe", }); }, ); }); }); });