Skip to content

Commit 26ad9fa

Browse files
author
Jovinull
committed
test(ui): adapta testes de registro para lidar com abas de perfis
1 parent 34e0dd5 commit 26ad9fa

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

frontend/tests/unit/components/login/RegisterSide.test.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ describe("RegisterSide", () => {
6262

6363
it("mostra erros obrigatórios ao submeter vazio", async () => {
6464
render(<RegisterSide />);
65+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
6566
fireEvent.click(screen.getByRole("button", { name: /cadastrar/i }));
6667
expect(await screen.findByText(/campo de nome é obrigatório/i)).toBeInTheDocument();
6768
expect(await screen.findByText(/campo de e-mail é obrigatório/i)).toBeInTheDocument();
@@ -73,6 +74,7 @@ describe("RegisterSide", () => {
7374

7475
it("valida CPF inválido quando preenchido", async () => {
7576
render(<RegisterSide />);
77+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
7678
fireEvent.change(screen.getByLabelText(/nome/i), { target: { value: "Usuário" } });
7779
fireEvent.change(screen.getByLabelText(/email/i), { target: { value: "teste@email.com" } });
7880
fireEvent.change(screen.getByPlaceholderText(/\(34\)/i), { target: { value: "+5534999999999" } });
@@ -87,6 +89,7 @@ describe("RegisterSide", () => {
8789
it("envia formulário válido sem CPF", async () => {
8890
mockRegister.mockResolvedValueOnce({ message: "Usuário criado" });
8991
render(<RegisterSide />);
92+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
9093
fireEvent.change(screen.getByLabelText(/nome/i), { target: { value: "Bene" } });
9194
fireEvent.change(screen.getByLabelText(/email/i), { target: { value: "bene@teste.com" } });
9295
fireEvent.change(screen.getByPlaceholderText(/\(34\)/i), { target: { value: "+5534999999999" } });
@@ -103,14 +106,38 @@ describe("RegisterSide", () => {
103106
cpf: "",
104107
level: "Júnior",
105108
technologies: ["React"],
109+
role: "admin",
106110
});
107111
});
108112
expect(window.location.href).toBe("/login?registered=true");
109113
});
110114

115+
it("envia formulário válido como usuário (sem tecnologias/nível)", async () => {
116+
mockRegister.mockResolvedValueOnce({ message: "Usuário criado" });
117+
render(<RegisterSide />);
118+
fireEvent.change(screen.getByLabelText(/nome/i), { target: { value: "Bene" } });
119+
fireEvent.change(screen.getByLabelText(/email/i), { target: { value: "bene@teste.com" } });
120+
fireEvent.change(screen.getByPlaceholderText(/\(34\)/i), { target: { value: "+5534999999999" } });
121+
fireEvent.change(screen.getByLabelText(/senha/i), { target: { value: "123456" } });
122+
fireEvent.click(screen.getByRole("button", { name: /cadastrar/i }));
123+
await waitFor(() => {
124+
expect(mockRegister).toHaveBeenCalledWith({
125+
email: "bene@teste.com",
126+
password: "123456",
127+
name: "Bene",
128+
phone: "+5534999999999",
129+
cpf: "",
130+
level: undefined,
131+
technologies: undefined,
132+
role: "user"
133+
});
134+
});
135+
});
136+
111137
it("exibe erro da API", async () => {
112138
mockRegister.mockRejectedValueOnce(new Error("Email já cadastrado"));
113139
render(<RegisterSide />);
140+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
114141
fireEvent.change(screen.getByLabelText(/nome/i), { target: { value: "Bene" } });
115142
fireEvent.change(screen.getByLabelText(/email/i), { target: { value: "bene@teste.com" } });
116143
fireEvent.change(screen.getByPlaceholderText(/\(34\)/i), { target: { value: "+5534999999999" } });
@@ -124,6 +151,7 @@ describe("RegisterSide", () => {
124151
it("mostra loading durante requisição", async () => {
125152
mockRegister.mockImplementation(() => new Promise(() => {}));
126153
render(<RegisterSide />);
154+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
127155
fireEvent.change(screen.getByLabelText(/nome/i), { target: { value: "Bene" } });
128156
fireEvent.change(screen.getByLabelText(/email/i), { target: { value: "bene@teste.com" } });
129157
fireEvent.change(screen.getByPlaceholderText(/\(34\)/i), { target: { value: "+5534999999999" } });
@@ -146,6 +174,7 @@ describe("RegisterSide", () => {
146174
it("desabilita inputs durante loading", async () => {
147175
mockRegister.mockImplementation(() => new Promise(() => {}));
148176
render(<RegisterSide />);
177+
fireEvent.click(screen.getByRole("button", { name: /sou admin/i }));
149178
const nomeInput = screen.getByLabelText(/nome/i);
150179
const emailInput = screen.getByLabelText(/email/i);
151180
const telefoneInput = screen.getByPlaceholderText(/\(34\)/i);

0 commit comments

Comments
 (0)