Skip to content

Commit

Permalink
atualiza teste da página loginNovo
Browse files Browse the repository at this point in the history
  • Loading branch information
rodrigoFAmaral committed Dec 15, 2024
1 parent 9b8e335 commit fe55f08
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/Components/AdvantagesModal/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default function AdvantagesModal({ title, description, onClose }) {
<div className="modal-overlay">
<div className="modal-box">
<button className="close-button" onClick={onClose}>
&times;
x
</button>

<h2 className="modal-header">{title}</h2>
Expand Down
122 changes: 117 additions & 5 deletions src/Pages/Public/LoginNovo/index.test.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,49 @@
import "@testing-library/jest-dom";
import { render, screen, fireEvent } from "@testing-library/react";
import { describe, it, expect } from "vitest";
import { render, screen, fireEvent, waitFor } from "@testing-library/react";
import { describe, it, expect, vi, afterEach } from "vitest";
import LoginNovo from "./index"; // Substituído Login por LoginNovo
import { BrowserRouter } from "react-router-dom";
import { getBenefitsForm } from "../../../Services/benefitsService";

vi.mock("../../../Services/benefitsService");

describe("LoginNovo", () => {
afterEach(() => {
vi.clearAllMocks();
});

it("should render header sentinela image", () => {
render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

expect(screen.getByAltText("Logo Sentinela")).toBeInTheDocument();
});

it("should render header vantagens and filiar buttons", () => {
render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

expect(screen.getByText("Vantagens")).toBeInTheDocument();
expect(screen.getByText("Filiar")).toBeInTheDocument();
});

it("should render body vantagens and filiar buttons", () => {
render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

expect(screen.getByText("Filiar-me ao sindicato")).toBeInTheDocument();
expect(screen.getByText("Ver vantagens")).toBeInTheDocument();
});

it("should render email and password input fields", () => {
render(
<BrowserRouter>
Expand Down Expand Up @@ -39,15 +78,36 @@ describe("LoginNovo", () => {
expect(forgotPasswordButton).toBeInTheDocument();
});

it("should render secondary button with text 'Filiar-me ao sindicato'", () => {
it("should render quero filiar and voltar ao topo buttons", () => {
render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

expect(screen.getByText("Quero filiar")).toBeInTheDocument();
expect(screen.getByText("Voltar ao Topo")).toBeInTheDocument();
});

it("fetches and displays benefits", async () => {
const benefits = [
{ _id: "1", nome: "Benefício 1", descricao: "descrição beneficio 1" },
{ _id: "2", nome: "Benefício 2", descricao: "descrição beneficio 2" },
];
getBenefitsForm.mockResolvedValue(benefits);

render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

const secondaryButton = screen.getByText("Filiar-me ao sindicato");
expect(secondaryButton).toBeInTheDocument();
await waitFor(() => expect(getBenefitsForm).toHaveBeenCalledTimes(1));
expect(screen.getByText("Benefício 1")).toBeInTheDocument();
expect(screen.getByText("Benefício 2")).toBeInTheDocument();

const detailButtons = screen.getAllByText("Saber mais");
expect(detailButtons).toHaveLength(benefits.length);
});

it("should update email field", () => {
Expand All @@ -63,6 +123,7 @@ describe("LoginNovo", () => {

expect(emailField.value).toBe("[email protected]");
});

it("should update password field", () => {
render(
<BrowserRouter>
Expand All @@ -76,4 +137,55 @@ describe("LoginNovo", () => {

expect(passwordField.value).toBe("password123");
});

it("modal should be visible after clicking saber mais", async () => {
const benefits = [
{ _id: "1", nome: "Benefício 1", descricao: "descrição beneficio 1" },
{ _id: "2", nome: "Benefício 2", descricao: "descrição beneficio 2" },
];
getBenefitsForm.mockResolvedValue(benefits);

render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

await waitFor(() => expect(getBenefitsForm).toHaveBeenCalledTimes(1));
await waitFor(() => {
const detailButtons = screen.getAllByText("Saber mais");
fireEvent.click(detailButtons[0]);
});

expect(screen.getByText("descrição beneficio 1")).toBeVisible();
});

it("modal should not be visible after clicking on the x", async () => {
const benefits = [
{ _id: "1", nome: "Benefício 1", descricao: "descrição beneficio 1" },
{ _id: "2", nome: "Benefício 2", descricao: "descrição beneficio 2" },
];
getBenefitsForm.mockResolvedValue(benefits);

render(
<BrowserRouter>
<LoginNovo />
</BrowserRouter>
);

await waitFor(() => expect(getBenefitsForm).toHaveBeenCalledTimes(1));
await waitFor(() => {
const detailButtons = screen.getAllByText("Saber mais");
fireEvent.click(detailButtons[0]);
});

expect(screen.getByText("descrição beneficio 1")).toBeVisible();

await waitFor(() => {
const xButton = screen.getByText("x");
fireEvent.click(xButton);
});

expect(screen.queryByText("descrição beneficio 1")).toBeNull();
});
});

0 comments on commit fe55f08

Please sign in to comment.