1
resposta

Login Stub

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");

}); });

1 resposta

Oi, Vitor! Como vai?

Mandou bem na estruturação dos testes com cy.intercept para simular cenários de erro no login. Essa abordagem ajuda a validar o comportamento da aplicação em casos de resposta negativa do servidor.

Conte com o apoio do Fórum na sua jornada.

Bons estudos!