From dc1af6e2d8850765abed97748357e0ac5ff6ba47 Mon Sep 17 00:00:00 2001 From: Adrian Cowan Date: Mon, 2 Jan 2023 19:12:18 +1100 Subject: [PATCH] website: Add e2e tests of ranking replies and prompts Like the previous commit, these are intended to function as a minimal smoke test that the API interaction with the backend is functional. --- .../e2e/evaluate/rank_assistant_replies.cy.ts | 30 +++++++++++++++++++ .../e2e/evaluate/rank_initial_prompts.cy.ts | 30 +++++++++++++++++++ .../e2e/evaluate/rank_user_replies.cy.ts | 30 +++++++++++++++++++ .../pages/evaluate/rank_assistant_replies.tsx | 6 ++-- .../pages/evaluate/rank_initial_prompts.tsx | 6 ++-- .../src/pages/evaluate/rank_user_replies.tsx | 6 ++-- 6 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts create mode 100644 website/cypress/e2e/evaluate/rank_initial_prompts.cy.ts create mode 100644 website/cypress/e2e/evaluate/rank_user_replies.cy.ts diff --git a/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts b/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts new file mode 100644 index 00000000..c7b85695 --- /dev/null +++ b/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts @@ -0,0 +1,30 @@ +describe("ranking prompter replies", () => { + it("completes the current task on submit and on request shows a new task", () => { + cy.signInWithEmail("cypress@example.com"); + cy.visit("/evaluate/rank_user_replies"); + + 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="next-task"]').click(); + + cy.get('[data-cy="task-id"').should((taskIdElement) => { + expect(taskIdElement.text()).not.to.eq(taskId); + }); + }); + }); +}); + +export {}; diff --git a/website/cypress/e2e/evaluate/rank_initial_prompts.cy.ts b/website/cypress/e2e/evaluate/rank_initial_prompts.cy.ts new file mode 100644 index 00000000..8c3f4c9a --- /dev/null +++ b/website/cypress/e2e/evaluate/rank_initial_prompts.cy.ts @@ -0,0 +1,30 @@ +describe("ranking initial prompts", () => { + it("completes the current task on submit and on request shows a new task", () => { + cy.signInWithEmail("cypress@example.com"); + cy.visit("/evaluate/rank_initial_prompts"); + + 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="next-task"]').click(); + + cy.get('[data-cy="task-id"').should((taskIdElement) => { + expect(taskIdElement.text()).not.to.eq(taskId); + }); + }); + }); +}); + +export {}; diff --git a/website/cypress/e2e/evaluate/rank_user_replies.cy.ts b/website/cypress/e2e/evaluate/rank_user_replies.cy.ts new file mode 100644 index 00000000..c448a4c7 --- /dev/null +++ b/website/cypress/e2e/evaluate/rank_user_replies.cy.ts @@ -0,0 +1,30 @@ +describe("ranking assistant replies", () => { + it("completes the current task on submit and on request shows a new task", () => { + cy.signInWithEmail("cypress@example.com"); + cy.visit("/evaluate/rank_assistant_replies"); + + 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="next-task"]').click(); + + cy.get('[data-cy="task-id"').should((taskIdElement) => { + expect(taskIdElement.text()).not.to.eq(taskId); + }); + }); + }); +}); + +export {}; diff --git a/website/src/pages/evaluate/rank_assistant_replies.tsx b/website/src/pages/evaluate/rank_assistant_replies.tsx index da3b8d4e..017deb3f 100644 --- a/website/src/pages/evaluate/rank_assistant_replies.tsx +++ b/website/src/pages/evaluate/rank_assistant_replies.tsx @@ -78,11 +78,13 @@ const RankAssistantReplies = () => { Skip {endTask.task.type !== "task_done" ? ( - submitResponse(tasks[0])} disabled={ranking.length === 0}> + submitResponse(tasks[0])} disabled={ranking.length === 0}> Submit ) : ( - Next Task + + Next Task + )} diff --git a/website/src/pages/evaluate/rank_initial_prompts.tsx b/website/src/pages/evaluate/rank_initial_prompts.tsx index 4bfc5163..b2b47f91 100644 --- a/website/src/pages/evaluate/rank_initial_prompts.tsx +++ b/website/src/pages/evaluate/rank_initial_prompts.tsx @@ -77,11 +77,13 @@ const RankInitialPrompts = () => { Skip {endTask.task.type !== "task_done" ? ( - submitResponse(tasks[0])} disabled={ranking.length === 0}> + submitResponse(tasks[0])} disabled={ranking.length === 0}> Submit ) : ( - Next Task + + Next Task + )} diff --git a/website/src/pages/evaluate/rank_user_replies.tsx b/website/src/pages/evaluate/rank_user_replies.tsx index 0a1c6d16..f7f6af47 100644 --- a/website/src/pages/evaluate/rank_user_replies.tsx +++ b/website/src/pages/evaluate/rank_user_replies.tsx @@ -78,11 +78,13 @@ const RankUserReplies = () => { Skip {endTask.task.type !== "task_done" ? ( - submitResponse(tasks[0])} disabled={ranking.length === 0}> + submitResponse(tasks[0])} disabled={ranking.length === 0}> Submit ) : ( - Next Task + + Next Task + )}