Files
Open-Assistant/website/cypress/e2e/tasks/random.cy.ts
T
Adrian Cowan 5054e19e93 website: Remove next task button and load new task immediately
Also disable the task inputs while the task is submitted and before the new task is ready in case the users network is slow or something.
2023-01-13 23:40:16 +11:00

58 lines
1.8 KiB
TypeScript

import { faker } from "@faker-js/faker";
describe("handles random tasks", () => {
it("completes the current task on submit and on request shows a new task", () => {
cy.signInWithEmail("cypress@example.com");
cy.visit("/tasks/random");
// Check all create tasks.
cy.get('[data-cy="task"]').then((createTaskElement) => {
if (createTaskElement.find('[data-task-type="create-task"]').length) {
cy.get('[data-cy="task-id"]').then((taskIdElement) => {
const taskId = taskIdElement.text();
const reply = faker.lorem.sentence();
cy.log("reply", reply);
cy.get('[data-cy="reply"]').type(reply);
cy.get('[data-cy="submit"]').click();
cy.get('[data-cy="task-id]"').should((taskIdElement) => {
expect(taskIdElement.text()).not.to.eq(taskId);
});
});
}
// Check all Evaluate tasks.
if (createTaskElement.find('[data-task-type="evaluate-task"]').length) {
cy.get('[data-cy="task-id"]').then((taskIdElement) => {
const taskId = taskIdElement.text();
// Rank an item using the keyboard so that the submit button is enabled
cy.get('button[aria-roledescription="sortable"]')
.first()
.click()
.type("{enter}")
.wait(100)
.type("{downArrow}")
.wait(100)
.type("{enter}");
cy.get('[data-cy="submit"]').click();
cy.get('[data-cy="task-id"]').should((taskIdElement) => {
expect(taskIdElement.text()).not.to.eq(taskId);
});
});
}
if (createTaskElement.find('[data-task-type="label-task"]').length) {
}
// TODO(#623): Figure out how to fail the test if none of the checks above pass.
});
});
});
export {};