From d10a018e2f0353d8c9b69624ee5910820014c22a Mon Sep 17 00:00:00 2001 From: nflnkr Date: Tue, 7 Nov 2023 20:21:40 +0300 Subject: [PATCH] add remaining question preview tests --- cypress/e2e/quizPreview.cy.ts | 131 +++++++++++++++--- src/ui_kit/AddOrEditImageButton.tsx | 2 +- src/ui_kit/CustomSlider.tsx | 1 + src/ui_kit/LabeledDatePicker.tsx | 1 + .../QuizPreviewQuestionTypes/Date.tsx | 2 +- .../QuizPreviewQuestionTypes/File.tsx | 5 +- .../QuizPreviewQuestionTypes/Number.tsx | 2 +- .../QuizPreviewQuestionTypes/Page.tsx | 4 +- .../QuizPreviewQuestionTypes/Rating.tsx | 5 +- .../QuizPreviewQuestionTypes/Select.tsx | 2 +- 10 files changed, 128 insertions(+), 27 deletions(-) diff --git a/cypress/e2e/quizPreview.cy.ts b/cypress/e2e/quizPreview.cy.ts index bd5d1a60..982f3b52 100644 --- a/cypress/e2e/quizPreview.cy.ts +++ b/cypress/e2e/quizPreview.cy.ts @@ -1,5 +1,9 @@ describe("Quiz preview", () => { beforeEach(() => { + cy.fixture("image1.png", null, {}).as("image1"); + cy.fixture("image2.png", null, {}).as("image2"); + cy.fixture("image3.png", null, {}).as("image3"); + cy.visit("/list"); cy.get("[data-cy=create-quiz]").click(); @@ -53,26 +57,22 @@ describe("Quiz preview", () => { describe("Image question", () => { beforeEach(function setupQuestion() { - cy.fixture("image1.png", null).as("image1"); - cy.fixture("image2.png", null).as("image2"); - cy.fixture("image3.png", null).as("image3"); - cy.get("[data-cy=select-questiontype-images]").click(); cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { cy.get("[data-cy=quiz-question-title]").type("Question Title"); cy.get("[data-cy=quiz-variant-question-answer]").eq(0).type("Answer 1{enter}"); - cy.get("[data-cy=add-variant-image-button]").eq(0).click(); + cy.get("[data-cy=add-image-button]").eq(0).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image1", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); cy.get("[data-cy=quiz-variant-question-answer]").eq(1).type("Answer 2{enter}"); - cy.get("[data-cy=add-variant-image-button]").eq(1).click(); + cy.get("[data-cy=add-image-button]").eq(1).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image2", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); cy.get("[data-cy=quiz-variant-question-answer]").eq(2).type("Answer 3"); - cy.get("[data-cy=add-variant-image-button]").eq(2).click(); + cy.get("[data-cy=add-image-button]").eq(2).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image3", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); }); @@ -85,6 +85,7 @@ describe("Quiz preview", () => { cy.get("[data-cy=variant-button] > img").eq(2).should("have.attr", "src").and("match", /^blob:.+/); cy.get("[data-cy=variant-button]").eq(0).click(); + // TODO check for images cy.get("[data-cy=variant-button]").eq(0).should("have.attr", "data-checked", "true"); cy.get("[data-cy=variant-button]").eq(1).should("have.attr", "data-checked", "false"); cy.get("[data-cy=variant-button]").eq(2).should("have.attr", "data-checked", "false"); @@ -132,26 +133,22 @@ describe("Quiz preview", () => { describe("Varimg question", () => { beforeEach(function setupQuestion() { - cy.fixture("image1.png", null).as("image1"); - cy.fixture("image2.png", null).as("image2"); - cy.fixture("image3.png", null).as("image3"); - cy.get("[data-cy=select-questiontype-varimg]").click(); cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { cy.get("[data-cy=quiz-question-title]").type("Question Title"); cy.get("[data-cy=quiz-variant-question-answer]").eq(0).type("Answer 1{enter}"); - cy.get("[data-cy=add-variant-image-button]").eq(0).click(); + cy.get("[data-cy=add-image-button]").eq(0).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image1", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); cy.get("[data-cy=quiz-variant-question-answer]").eq(1).type("Answer 2{enter}"); - cy.get("[data-cy=add-variant-image-button]").eq(1).click(); + cy.get("[data-cy=add-image-button]").eq(1).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image2", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); cy.get("[data-cy=quiz-variant-question-answer]").eq(2).type("Answer 3"); - cy.get("[data-cy=add-variant-image-button]").eq(2).click(); + cy.get("[data-cy=add-image-button]").eq(2).click(); cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image3", { force: true }); cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); }); @@ -288,14 +285,17 @@ describe("Quiz preview", () => { describe("Select question", () => { beforeEach(function setupQuestion() { cy.get("[data-cy=select-questiontype-select]").click(); - cy.get("[data-cy=quiz-question-title]").type("Question Title"); - cy.get("[data-cy=quiz-variant-question-answer]").eq(0).type("Answer 1{enter}"); - cy.get("[data-cy=quiz-variant-question-answer]").eq(1).type("Answer 2{enter}"); - cy.get("[data-cy=quiz-variant-question-answer]").eq(2).type("Answer 3"); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + cy.get("[data-cy=quiz-variant-question-answer]").eq(0).type("Answer 1{enter}"); + cy.get("[data-cy=quiz-variant-question-answer]").eq(1).type("Answer 2{enter}"); + cy.get("[data-cy=quiz-variant-question-answer]").eq(2).type("Answer 3"); + }); }); it("should contain title and select, and be selected properly", () => { cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); cy.get("[data-cy=select]").click(); cy.get("[data-cy=select-option]", { withinSubject: null }).eq(0).click(); cy.get("[data-cy=select] #category-select").should("have.text", "Answer 1"); @@ -308,4 +308,99 @@ describe("Quiz preview", () => { }); }); }); + + describe("Date question", () => { + beforeEach(function setupQuestion() { + cy.get("[data-cy=select-questiontype-date]").click(); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + }); + }); + + it("should contain title and datepicker", () => { + cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); + cy.get("[data-cy=open-datepicker]").should("exist"); + }); + }); + }); + + describe("Number question", () => { + beforeEach(function setupQuestion() { + cy.get("[data-cy=select-questiontype-number]").click(); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + cy.get("[data-cy=textfield]").eq(0).type("{selectall}{backspace}10"); + cy.get("[data-cy=textfield]").eq(1).type("{selectall}{backspace}90"); + cy.get("[data-cy=textfield]").eq(2).type("{selectall}{backspace}50"); + cy.get("[data-cy=textfield]").eq(3).type("{selectall}{backspace}5"); + }); + }); + + it("should contain title and slider", () => { + cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); + cy.get("[data-cy=slider]").should("exist"); + }); + }); + }); + + describe("File question", () => { + beforeEach(function setupQuestion() { + cy.get("[data-cy=select-questiontype-file]").click(); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + }); + }); + + it("should contain title and filepicker", () => { + cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); + cy.get("[data-cy=file-upload-input]").selectFile("@image1", { force: true }); + cy.get("[data-cy=chosen-file-name]").should("contain.text", "Выбран файл:"); + }); + }); + }); + + describe("Page question", () => { + beforeEach(function setupQuestion() { + cy.get("[data-cy=select-questiontype-page]").click(); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + cy.get("[data-cy=textfield]").type("Some text"); + + cy.get("[data-cy=add-image-button]").eq(0).click(); + cy.get("[data-cy=upload-image-input]", { withinSubject: null }).selectFile("@image1", { force: true }); + cy.get("[data-cy=crop-modal-save-button]", { withinSubject: null }).click(); + }); + }); + + it("should contain title and filepicker", () => { + cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); + cy.get("[data-cy=question-text]").should("have.text", "Some text"); + cy.get("img").invoke("attr", "src").should("match", /^blob:.+/); + }); + }); + }); + + describe.only("Rating question", () => { + beforeEach(function setupQuestion() { + cy.get("[data-cy=select-questiontype-rating]").click(); + cy.get("[data-cy=quiz-question-card]").eq(0).within(() => { + cy.get("[data-cy=quiz-question-title]").type("Question Title"); + }); + }); + + it("should contain title and filepicker", () => { + cy.get("[data-cy=quiz-preview-layout]").within(() => { + cy.get("[data-cy=question-title]").should("have.text", "Question Title"); + cy.get("[data-cy=rating-button]").should("have.length", 5); + cy.get("[data-cy=rating-button]").eq(2).click(); + cy.get("[data-cy=rating]").should("have.attr", "data-rating", 3); + cy.get("[data-cy=rating-button]").eq(4).click(); + cy.get("[data-cy=rating]").should("have.attr", "data-rating", 5); + }); + }); + }); }); diff --git a/src/ui_kit/AddOrEditImageButton.tsx b/src/ui_kit/AddOrEditImageButton.tsx index 35c35b2e..a7ba9865 100644 --- a/src/ui_kit/AddOrEditImageButton.tsx +++ b/src/ui_kit/AddOrEditImageButton.tsx @@ -50,7 +50,7 @@ export default function AddOrEditImageButton({ onImageClick, onPlusClick, sx, im - {file && Выбран файл: {file.name}} + {file && Выбран файл: {file.name}} ); } diff --git a/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Number.tsx b/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Number.tsx index becb4928..e9a5dde5 100644 --- a/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Number.tsx +++ b/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Number.tsx @@ -32,7 +32,7 @@ export default function Number({ question }: Props) { gap: 1, }} > - {question.title} + {question.title} - {question.title} - {question.content.text} + {question.title} + {question.content.text} {question.content.picture && ( - {question.title} + {question.title} setSelectedRating(itemNumber + 1)} + data-cy="rating-button" sx={{ cursor: "pointer", transform: "scale(1.5)", diff --git a/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Select.tsx b/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Select.tsx index 4862fd4d..37197de4 100644 --- a/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Select.tsx +++ b/src/ui_kit/QuizPreview/QuizPreviewQuestionTypes/Select.tsx @@ -32,7 +32,7 @@ export default function Text({ question }: Props) { gap: 1, }} > - {question.title} + {question.title}