From db92db89bbe1f0f0dbbebdcaa31cacbfbb091c8f Mon Sep 17 00:00:00 2001 From: minbo Date: Thu, 29 Aug 2024 01:01:13 +0900 Subject: [PATCH 1/4] =?UTF-8?q?test:=20=EA=B8=B0=ED=83=80=20=EC=A7=88?= =?UTF-8?q?=EB=AC=B8=20=EC=82=AC=ED=95=AD=20e2e=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../e2e/application.other-questions.cy.ts | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 frontend/cypress/e2e/application.other-questions.cy.ts diff --git a/frontend/cypress/e2e/application.other-questions.cy.ts b/frontend/cypress/e2e/application.other-questions.cy.ts new file mode 100644 index 00000000..9ec84634 --- /dev/null +++ b/frontend/cypress/e2e/application.other-questions.cy.ts @@ -0,0 +1,108 @@ +describe("2번째 인적사항 e2e 테스트", () => { + beforeEach(() => { + cy.viewport(1200, 900); + + cy.goOtherQuestions(); + + cy.get("label") + .contains( + "학업 외에 병행하고 있거나 향후 계획 중에 있는 활동이 있으시다면 서술해 주세요.*" + ) + .parent() + .next("input") + .as("plan"); + + cy.get("span") + .contains("지원 경로(중복 선택 가능)*") + .parent() + .next() + .contains("label", "학과 공지사항") + .as("announcement"); + + cy.get("span") + .contains("지원 경로(중복 선택 가능)*") + .parent() + .next() + .contains("label", "인스타그램") + .as("instagram"); + + cy.get("span") + .contains("지원 경로(중복 선택 가능)*") + .parent() + .next() + .contains("label", "기타") + .as("etc"); + + cy.get("span") + .contains("자기소개 및 에코노베이션에 지원하게 된 계기를 서술해 주세요.") + .as("nextPage"); + + cy.get("button").contains("다음").as("nextButton"); + }); + + it("사용자는 향후 계획활동을 기입할 수 있다.", () => { + cy.get("@plan").type("프로젝트").should("have.value", "프로젝트").clear(); + }); + + it("사용자는 지원 경로를 중복으로 선택가능하다.", () => { + cy.get("@announcement").click(); + cy.get("@instagram").click(); + cy.get("@announcement") + .should("have.class", "text-white") + .click() + .should("not.have.class", "text-white"); + cy.get("@instagram") + .should("have.class", "text-white") + .click() + .should("not.have.class", "text-white"); + }); + + it("사용자는 지원 경로에서 기타를 선택할 경우 기타 지원 경로에 관한 내용을 입력할 수 있다.", () => { + cy.get("@etc").click(); + cy.get('input[placeholder="내용을 입력해주세요."]') + .type("dev") + .should("have.value", "dev") + .clear(); + cy.get("@etc").should("have.class", "text-white").click(); + }); + + it("사용자는 아무것도 작성 및 선택하지 말고 다음버튼을 누를 시, “필수 질문을 작성해주세요.”라는 alert창이 뜬다.", () => { + cy.get("@nextButton").click(); + cy.checkAlert("필수 질문을 작성해주세요."); + }); + + it("사용자는 향후 계획활동을 기입하지 않고 다음버튼을 누를 시, “필수 질문을 작성해주세요.”라는 alert창이 뜬다. (지원경로 선택 = true)", () => { + cy.get("@announcement").click(); + cy.get("@nextButton").click(); + cy.checkAlert("필수 질문을 작성해주세요."); + }); + + it("사용자는 지원경로를 선택하지 않고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => { + cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); + cy.get("@nextButton").click(); + cy.checkAlert("지원 경로를 선택해주세요."); + }); + + it("사용자는 지원경로 중 “기타” 만 선택하고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => { + cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); + cy.get("@etc").click(); + cy.get("@nextButton").click(); + cy.checkAlert("지원 경로를 선택해주세요."); + }); + + it("사용자는 “기타”가 아닌 지원경로 하나 이상과, “기타”를 선택하고 다음버튼을 누를 시, 다음 페이지로 넘어간다. (향후 계획활동 작성 = true, 지원경로 선택 = true )", () => { + cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); + cy.get("@announcement").click(); + cy.get("@etc").click(); + cy.get("@nextButton").click(); + cy.get("@nextPage").should("have.class", "text-black"); + }); + + it("사용자는 지원경로 중 “기타”만 선택하고 기타에 관한 내용을 기입한 이후, 다음 버튼을 누를 시, 다음페이지로 넘어간다. (향후 계획활동 작성 = true, 지원 경로 선택 = true)", () => { + cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); + cy.get("@etc").click(); + cy.get('input[placeholder="내용을 입력해주세요."]').type("dev"); + cy.get("@nextButton").click(); + cy.get("@nextPage").should("have.class", "text-black"); + }); +}); From 2f197422c1684a4c512e98f9d8affe3a7513c074 Mon Sep 17 00:00:00 2001 From: minbo Date: Thu, 29 Aug 2024 01:01:59 +0900 Subject: [PATCH 2/4] =?UTF-8?q?test:=20wait=20=EC=B6=94=EA=B0=80,=20goOthe?= =?UTF-8?q?rQuestions=20=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EA=B0=80=EB=81=94=EC=94=A9=20=ED=85=8D=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EA=B0=80=20"2=EC=88=9C=EC=9C=84"=EC=9D=B8=20span=20=ED=83=9C?= =?UTF-8?q?=EA=B7=B8=EB=A5=BC=20=EC=9D=B8=EC=8B=9D=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EB=AA=BB=ED=95=98=EC=97=AC=20wait=EB=A5=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=95=98=EC=98=80=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/cypress/support/commands.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frontend/cypress/support/commands.ts b/frontend/cypress/support/commands.ts index 1fe34286..80f72a25 100644 --- a/frontend/cypress/support/commands.ts +++ b/frontend/cypress/support/commands.ts @@ -5,6 +5,7 @@ declare namespace Cypress { checkLocalStorage(key: string, expectedValue: string): Chainable; checkAlert(expectedValue: string): Chainable; goSecondPersonalInformation(): Chainable; + goOtherQuestions(): Chainable; } } @@ -34,6 +35,7 @@ Cypress.Commands.add("goSecondPersonalInformation", () => { .contains("label", "APP") .should("exist") .click(); + cy.wait(1000); cy.get("span") .filter((index, element) => Cypress.$(element).text().trim() === "2순위") .next() @@ -73,3 +75,14 @@ Cypress.Commands.add("goSecondPersonalInformation", () => { cy.get("label").contains("2학기").should("exist").click(); cy.get("button").contains("다음").should("exist").click(); }); + +Cypress.Commands.add("goOtherQuestions", () => { + cy.goSecondPersonalInformation(); + cy.get("span") + .filter((index, element) => Cypress.$(element).text().trim() === "전공*") + .parent() + .next("input") + .type("컴퓨터정보통신공학과"); + + cy.get("button").contains("다음").click(); +}); From f71596ba67eb68a3c6581b7fbc7de31317b775e1 Mon Sep 17 00:00:00 2001 From: minbo Date: Thu, 29 Aug 2024 01:16:23 +0900 Subject: [PATCH 3/4] =?UTF-8?q?test:=20describe=EC=9D=98=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=9D=B4=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/cypress/e2e/application.other-questions.cy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/cypress/e2e/application.other-questions.cy.ts b/frontend/cypress/e2e/application.other-questions.cy.ts index 9ec84634..f0087e39 100644 --- a/frontend/cypress/e2e/application.other-questions.cy.ts +++ b/frontend/cypress/e2e/application.other-questions.cy.ts @@ -1,4 +1,4 @@ -describe("2번째 인적사항 e2e 테스트", () => { +describe("기타 질문 사항 e2e 테스트", () => { beforeEach(() => { cy.viewport(1200, 900); From 2565d0277b3b47d1a8087103a48958dce894c4f4 Mon Sep 17 00:00:00 2001 From: minbo Date: Thu, 29 Aug 2024 13:58:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?test:=20checkAlert=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=EA=B0=80=20=EC=9E=98=20=EB=8F=99=EC=9E=91=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=BD=94=EB=93=9C=20=EC=9C=84=EC=B9=98=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/cypress/e2e/application.other-questions.cy.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/cypress/e2e/application.other-questions.cy.ts b/frontend/cypress/e2e/application.other-questions.cy.ts index f0087e39..8b6543eb 100644 --- a/frontend/cypress/e2e/application.other-questions.cy.ts +++ b/frontend/cypress/e2e/application.other-questions.cy.ts @@ -67,27 +67,27 @@ describe("기타 질문 사항 e2e 테스트", () => { }); it("사용자는 아무것도 작성 및 선택하지 말고 다음버튼을 누를 시, “필수 질문을 작성해주세요.”라는 alert창이 뜬다.", () => { - cy.get("@nextButton").click(); cy.checkAlert("필수 질문을 작성해주세요."); + cy.get("@nextButton").click(); }); it("사용자는 향후 계획활동을 기입하지 않고 다음버튼을 누를 시, “필수 질문을 작성해주세요.”라는 alert창이 뜬다. (지원경로 선택 = true)", () => { + cy.checkAlert("필수 질문을 작성해주세요."); cy.get("@announcement").click(); cy.get("@nextButton").click(); - cy.checkAlert("필수 질문을 작성해주세요."); }); it("사용자는 지원경로를 선택하지 않고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => { + cy.checkAlert("지원 경로를 선택해주세요."); cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); cy.get("@nextButton").click(); - cy.checkAlert("지원 경로를 선택해주세요."); }); it("사용자는 지원경로 중 “기타” 만 선택하고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => { + cy.checkAlert("지원 경로를 선택해주세요."); cy.get("@plan").type("프로젝트").should("have.value", "프로젝트"); cy.get("@etc").click(); cy.get("@nextButton").click(); - cy.checkAlert("지원 경로를 선택해주세요."); }); it("사용자는 “기타”가 아닌 지원경로 하나 이상과, “기타”를 선택하고 다음버튼을 누를 시, 다음 페이지로 넘어간다. (향후 계획활동 작성 = true, 지원경로 선택 = true )", () => {