88 lines
3.6 KiB
TypeScript
88 lines
3.6 KiB
TypeScript
import { userExample } from "../../../fixtures/users/user"
|
|
import {
|
|
postUsersSignupHandler,
|
|
postUsersSignupAlreadyUsedHandler,
|
|
} from "../../../fixtures/users/signup/post"
|
|
|
|
describe("Pages > /authentication/signup", () => {
|
|
beforeEach(() => {
|
|
cy.task("stopMockServer")
|
|
cy.visit("/authentication/signup")
|
|
})
|
|
|
|
it("should succeeds and sign up the user", () => {
|
|
cy.task("startMockServer", [postUsersSignupHandler])
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
cy.get("[data-cy=input-name]").type(userExample.name)
|
|
cy.get("[data-cy=input-email]").type(userExample.email)
|
|
cy.get("[data-cy=input-password]").type("randompassword")
|
|
cy.get("[data-cy=submit]").click()
|
|
cy.get("#message").should(
|
|
"have.text",
|
|
"Success: You're almost there, please check your emails to confirm registration.",
|
|
)
|
|
})
|
|
|
|
it("should fails with name or email already used", () => {
|
|
cy.task("startMockServer", [postUsersSignupAlreadyUsedHandler])
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
cy.get("[data-cy=input-name]").type(userExample.name)
|
|
cy.get("[data-cy=input-email]").type(userExample.email)
|
|
cy.get("[data-cy=input-password]").type("randompassword")
|
|
cy.get("[data-cy=submit]").click()
|
|
cy.get("#message").should("have.text", "Error: Name or Email already used.")
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
})
|
|
|
|
it("should fails with unreachable api server", () => {
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
cy.get("[data-cy=input-name]").type(userExample.name)
|
|
cy.get("[data-cy=input-email]").type(userExample.email)
|
|
cy.get("[data-cy=input-password]").type("randompassword")
|
|
cy.get("[data-cy=submit]").click()
|
|
cy.get("#message").should("have.text", "Error: Internal Server Error.")
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
})
|
|
|
|
it("should fails with all inputs as required with error messages and update error messages when updating language (translation)", () => {
|
|
const requiredErrorMessage = {
|
|
en: "Error: Oops, this field is required 🙈.",
|
|
fr: "Erreur: Oups, ce champ est obligatoire 🙈.",
|
|
}
|
|
cy.get("#error-name").should("not.exist")
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("#error-password").should("not.exist")
|
|
cy.get("[data-cy=submit]").click()
|
|
cy.get("#error-name").should("have.text", requiredErrorMessage.en)
|
|
cy.get("#error-email").should("have.text", requiredErrorMessage.en)
|
|
cy.get("#error-password").should("have.text", requiredErrorMessage.en)
|
|
cy.get("[data-cy=language-click]").click()
|
|
cy.get("[data-cy=languages-list] > li:first-child").contains("FR").click()
|
|
cy.get("#error-name").should("have.text", requiredErrorMessage.fr)
|
|
cy.get("#error-email").should("have.text", requiredErrorMessage.fr)
|
|
cy.get("#error-password").should("have.text", requiredErrorMessage.fr)
|
|
})
|
|
|
|
it("should fails with wrong email format", () => {
|
|
cy.get("#error-email").should("not.exist")
|
|
cy.get("[data-cy=input-email]").type("test")
|
|
cy.get("[data-cy=submit]").click()
|
|
cy.get("#error-email").should(
|
|
"have.text",
|
|
"Error: Mmm… It seems that this email is not valid 🤔.",
|
|
)
|
|
})
|
|
})
|
|
|
|
export {}
|