-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #164 from JNU-econovation/test/162-second-personal…
…-information test: 두번째 기본 인적 사항 테스트 코드 작성
- Loading branch information
Showing
2 changed files
with
125 additions
and
36 deletions.
There are no files selected for viewing
69 changes: 69 additions & 0 deletions
69
frontend/cypress/e2e/application.second-personal-information.cy.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
describe("2번째 인적사항 e2e 테스트", () => { | ||
beforeEach(() => { | ||
cy.viewport(1200, 900); | ||
|
||
cy.goSecondPersonalInformation(); | ||
|
||
cy.get("span") | ||
.filter((index, element) => Cypress.$(element).text().trim() === "전공*") | ||
.parent() | ||
.next("input") | ||
.as("major"); | ||
|
||
cy.get("span") | ||
.filter( | ||
(index, element) => Cypress.$(element).text().trim() === "복수전공" | ||
) | ||
.parent() | ||
.next("input") | ||
.as("revengeMajor"); | ||
|
||
cy.get("span") | ||
.filter((index, element) => Cypress.$(element).text().trim() === "부전공") | ||
.parent() | ||
.next("input") | ||
.as("minor"); | ||
|
||
cy.get("button").contains("다음").as("nextButton"); | ||
}); | ||
|
||
it("전공 입력 후 다음 버튼 클릭하면 기타 질문 사항으로 이동", () => { | ||
cy.get("@major").type("컴퓨터정보통신공학과"); | ||
cy.get("@nextButton").click(); | ||
}); | ||
|
||
it("전공, 복수전공 입력 후 다음 버튼 클릭하면 기타 질문 사항으로 이동", () => { | ||
cy.get("@major").type("컴퓨터정보통신공학과"); | ||
cy.get("@revengeMajor").type("건축학과"); | ||
cy.get("@nextButton").click(); | ||
}); | ||
|
||
it("전공, 부전공 입력 후 다음 버튼 클릭하면 기타 질문 사항으로 이동", () => { | ||
cy.get("@major").type("컴퓨터정보통신공학과"); | ||
cy.get("@minor").type("물리학과"); | ||
cy.get("@nextButton").click(); | ||
}); | ||
|
||
it("전공, 복수전공, 부전공 입력 후 다음 버튼 클릭하면 기타 질문 사항으로 이동", () => { | ||
cy.get("@major").type("컴퓨터정보통신공학과"); | ||
cy.get("@revengeMajor").type("건축학과"); | ||
cy.get("@minor").type("물리학과"); | ||
cy.get("@nextButton").click(); | ||
}); | ||
|
||
it("아무것도 입력하지 않고 다음 버튼 클릭하면 '필수 질문을 작성해주세요.'라는 alert창이 보인다.", () => { | ||
cy.get("@nextButton").click(); | ||
cy.on("window:alert", (text) => { | ||
console.log("Alert message:", text); | ||
}); | ||
}); | ||
|
||
it("전공을 입력하지 않고 복수전공, 부전공을 입력 후 다음 버튼 클릭하면 '필수 질문을 작성해주세요.'라는 alert창이 보인다.", () => { | ||
cy.get("@revengeMajor").type("건축학과"); | ||
cy.get("@minor").type("물리학과"); | ||
cy.get("@nextButton").click(); | ||
cy.on("window:alert", (text) => { | ||
console.log("Alert message:", text); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,57 @@ | ||
/// <reference types="cypress" /> | ||
// *********************************************** | ||
// This example commands.ts shows you how to | ||
// create various custom commands and overwrite | ||
// existing commands. | ||
// | ||
// For more comprehensive examples of custom | ||
// commands please read more here: | ||
// https://on.cypress.io/custom-commands | ||
// *********************************************** | ||
// | ||
// | ||
// -- This is a parent command -- | ||
// Cypress.Commands.add('login', (email, password) => { ... }) | ||
// | ||
// | ||
// -- This is a child command -- | ||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) | ||
// | ||
// | ||
// -- This is a dual command -- | ||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) | ||
// | ||
// | ||
// -- This will overwrite an existing command -- | ||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) | ||
// | ||
// declare global { | ||
// namespace Cypress { | ||
// interface Chainable { | ||
// login(email: string, password: string): Chainable<void> | ||
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element> | ||
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element> | ||
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element> | ||
// } | ||
// } | ||
// } | ||
|
||
declare namespace Cypress { | ||
interface Chainable { | ||
goSecondPersonalInformation(): Chainable<void>; | ||
} | ||
} | ||
|
||
Cypress.Commands.add("goSecondPersonalInformation", () => { | ||
cy.clearAllLocalStorage(); | ||
cy.visit("http://localhost:3000/application"); | ||
cy.get("label").contains("개발자").should("exist").click(); | ||
cy.get("span") | ||
.contains("1순위") | ||
.next() | ||
.contains("label", "APP") | ||
.should("exist") | ||
.click(); | ||
cy.get("span") | ||
.filter((index, element) => Cypress.$(element).text().trim() === "2순위") | ||
.next() | ||
.contains("label", "WEB") | ||
.should("exist") | ||
.click(); | ||
cy.get("button").contains("다음").should("exist").click(); | ||
cy.get("span") | ||
.contains("이름") | ||
.parent() | ||
.next() | ||
.type("심민보") | ||
.invoke("val") | ||
.should("satisfy", (value) => value.length <= 5); | ||
cy.get("span") | ||
.contains("연락처") | ||
.parent() | ||
.next() | ||
.type("00000000000") | ||
.invoke("val") | ||
.should("match", /^\d{3}-\d{4}-\d{4}$/); | ||
cy.get("span") | ||
.contains("학번") | ||
.parent() | ||
.next() | ||
.type("123456") | ||
.invoke("val") | ||
.should("match", /^\d{6}$/); | ||
cy.get("span") | ||
.contains("학적상태") | ||
.parent() | ||
.next() | ||
.type("재학") | ||
.invoke("val") | ||
.should("satisfy", (value) => value.length >= 1); | ||
cy.get("label").contains("4학년").should("exist").click(); | ||
cy.get("label").contains("2학기").should("exist").click(); | ||
cy.get("button").contains("다음").should("exist").click(); | ||
}); |