88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
import { TEST_STUDENT1_USER_ID } from "../../consts";
|
|
import { login } from "../helpers";
|
|
|
|
describe("trainer test", () => {
|
|
beforeEach(() => {
|
|
cy.manageCommand("cypress_reset --create-completion");
|
|
login("test-trainer1@example.com", "test");
|
|
});
|
|
|
|
it("can open cockpit assignment page and open user assignment", () => {
|
|
cy.visit("/course/test-lehrgang/cockpit/assignment");
|
|
|
|
cy.get('[data-cy="Student1"]').should("contain", "Ergebnisse abgegeben");
|
|
cy.get('[data-cy="Student1"]').find('[data-cy="show-results"]').click();
|
|
|
|
cy.get('[data-cy="student-submission"]').should("contain", "Ergebnisse");
|
|
cy.get('[data-cy="student-submission"]').should("contain", "Student1");
|
|
});
|
|
|
|
it("can start evaluation and store evaluation results", () => {
|
|
cy.visit("/course/test-lehrgang/cockpit/assignment");
|
|
|
|
cy.get('[data-cy="Student1"]').find('[data-cy="show-results"]').click();
|
|
|
|
cy.get('[data-cy="start-evaluation"]').click();
|
|
cy.get('[data-cy="evaluation-task"]').should(
|
|
"contain",
|
|
"Beurteilungskriterium 1 / 5"
|
|
);
|
|
|
|
// without text input the button should be disabled
|
|
cy.get('[data-cy="next-step"]').should("be.disabled");
|
|
|
|
// with text you can continue
|
|
cy.get('[data-cy="subtask-4"]').click();
|
|
cy.get('[data-cy="reason-text"]').type("Gut gemacht!");
|
|
// wait for debounce
|
|
cy.wait(500);
|
|
cy.get('[data-cy="next-step"]').click();
|
|
|
|
cy.get('[data-cy="evaluation-task"]').should(
|
|
"contain",
|
|
"Beurteilungskriterium 2 / 5"
|
|
);
|
|
cy.get('[data-cy="subtask-2"]').click();
|
|
cy.get('[data-cy="reason-text"]').type("Nicht so gut");
|
|
cy.wait(500);
|
|
|
|
// revisit step 1 will show stored data
|
|
cy.get('[data-cy="previous-step"]').click();
|
|
cy.get('[data-cy="reason-text"]')
|
|
.find("textarea")
|
|
.should("have.value", "Gut gemacht!");
|
|
|
|
// even after reload
|
|
cy.reload();
|
|
cy.get('[data-cy="reason-text"]')
|
|
.find("textarea")
|
|
.should("have.value", "Gut gemacht!");
|
|
|
|
// it can access step directly via url
|
|
cy.url().then((url) => {
|
|
const step2Url = url.replace("step=1", "step=2");
|
|
console.log(step2Url);
|
|
cy.visit(step2Url);
|
|
});
|
|
|
|
cy.get('[data-cy="reason-text"]')
|
|
.find("textarea")
|
|
.should("have.value", "Nicht so gut");
|
|
|
|
// load AssignmentCompletion from DB and check
|
|
cy.loadAssignmentCompletion(
|
|
"assignment_user_id",
|
|
TEST_STUDENT1_USER_ID
|
|
).then((ac) => {
|
|
expect(ac.completion_status).to.equal("EVALUATION_IN_PROGRESS");
|
|
expect(JSON.stringify(ac.completion_data)).to.include("Nicht so gut");
|
|
expect(Cypress._.values(ac.completion_data)).to.deep.include({
|
|
expert_data: { points: 2, text: "Nicht so gut" },
|
|
});
|
|
expect(Cypress._.values(ac.completion_data)).to.deep.include({
|
|
expert_data: { points: 4, text: "Gut gemacht!" },
|
|
});
|
|
});
|
|
});
|
|
});
|