describe("Login - Cenário de Erro", () => { beforeEach(() => { // Intercepta a requisição POST de login cy.intercept("POST", "**/api/login", { statusCode: 401, body: { error: "Credenciais inválidas", }, }).as("loginRequest");
cy.visit("https://adopet-frontend-iota.vercel.app/");
});
it("Deve exibir mensagem de erro quando as credenciais são inválidas", () => { // Clica no botão de login cy.get('[data-test="login-button"]').click();
cy.get('[data-test="input-loginEmail"]').type("usuario@teste.com");
cy.get('[data-test="input-loginPassword"]').type("senha123");
cy.get('[data-test="submit-button"]').click();
cy.wait("@loginRequest");
cy.contains("Credenciais inválidas").should("be.visible");
cy.url().should("include", "/login");
});
it("Deve validar campos obrigatórios", () => { cy.get('[data-test="login-button"]').click();
cy.get('[data-test="submit-button"]').click();
cy.contains("É necessário informar um endereço de email").should(
"be.visible"
);
cy.contains("Insira sua senha").should("be.visible");
});
it("Deve validar formato de e-mail", () => { cy.get('[data-test="login-button"]').click();
cy.get('[data-test="input-loginEmail"]').type("emailinvalido");
cy.get('[data-test="input-loginPassword"]').type("senha123");
cy.get('[data-test="submit-button"]').click();
cy.contains("Por favor, verifique o email digitado").should("be.visible");
cy.contains(
"A senha deve conter pelo menos uma letra maiúscula, um número e ter entre 6 e 15 caracteres"
).should("be.visible");
}); });