From 372032bfdec80bd0ef152ae5d340ac416d873eb9 Mon Sep 17 00:00:00 2001 From: Jovinull Date: Fri, 28 Aug 2026 11:35:15 -0300 Subject: [PATCH 1/2] fix(frontend): remove seeds do dashboard --- .../new_dashboard/components/layout/Header.tsx | 7 +++---- .../unit/new_dashboard/branch-coverage.test.tsx | 12 +++++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/frontend/src/domains/new_dashboard/components/layout/Header.tsx b/frontend/src/domains/new_dashboard/components/layout/Header.tsx index 43f96e4..50cc80e 100644 --- a/frontend/src/domains/new_dashboard/components/layout/Header.tsx +++ b/frontend/src/domains/new_dashboard/components/layout/Header.tsx @@ -2,7 +2,6 @@ import { useAuth } from "@/domains/auth/application/AuthContext"; import { Bell, ChevronDown, Mail } from "lucide-react"; import { useCallback, useEffect, useRef, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; -import { initialMessages, initialNotifications } from "../../constants"; import { clearDashboardNotifications, getDashboardNotificationFeed, @@ -30,9 +29,9 @@ export function Header({ title, userProfile, userInitials, - unreadNotifications = 1, - messages = initialMessages, - notifications = initialNotifications, + unreadNotifications = 0, + messages = [], + notifications = [], }: HeaderProps) { const location = useLocation(); const navigate = useNavigate(); diff --git a/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx b/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx index f78f528..57d70e4 100644 --- a/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx +++ b/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx @@ -122,7 +122,7 @@ describe("new_dashboard branch coverage", () => { }); }); - it("cobre fallback do header sem usuário e menus vazios", () => { + it("exibe estados vazios do header sem dados reais", () => { renderWithRouter(
); expect(screen.getByLabelText("Mensagens")).toBeInTheDocument(); @@ -132,13 +132,11 @@ describe("new_dashboard branch coverage", () => { fireEvent.click(screen.getByLabelText("Mensagens")); expect(screen.getByText(/lidas/i)).toBeInTheDocument(); + expect(screen.getByText("Nenhuma mensagem recente.")).toBeInTheDocument(); + expect(screen.queryByText("Julio Silva (Mentor)")).not.toBeInTheDocument(); - fireEvent.click(screen.getByText("Julio Silva (Mentor)")); - expect( - screen.getByRole("heading", { name: "Julio Silva (Mentor)" }), - ).toBeInTheDocument(); - expect(screen.getByText("Mentoria")).toBeInTheDocument(); - expect(screen.getAllByRole("button", { name: "Fechar" })).toHaveLength(2); + fireEvent.click(screen.getByLabelText("Notificações")); + expect(screen.getByText("Nenhuma notificação recente.")).toBeInTheDocument(); }); it("carrega feeds reais, limpa alertas e abre menus do header autenticado", async () => { From f365cba9da1340249cc8f9cec5833bc20486cc6f Mon Sep 17 00:00:00 2001 From: Jovinull Date: Sat, 29 Aug 2026 08:57:30 -0300 Subject: [PATCH 2/2] fix(frontend): remover fallback de seeds do header --- .../components/layout/Header.tsx | 5 +- .../new_dashboard/constants/initialData.ts | 40 --------------- .../new_dashboard/branch-coverage.test.tsx | 49 +++++++++++++++++++ 3 files changed, 53 insertions(+), 41 deletions(-) diff --git a/frontend/src/domains/new_dashboard/components/layout/Header.tsx b/frontend/src/domains/new_dashboard/components/layout/Header.tsx index 50cc80e..0ecb2cc 100644 --- a/frontend/src/domains/new_dashboard/components/layout/Header.tsx +++ b/frontend/src/domains/new_dashboard/components/layout/Header.tsx @@ -116,7 +116,10 @@ export function Header({ }); setUnreadCount(notificationsResult.unreadCount); } catch { - // Mantém os dados de fallback até a API estar disponível. + setMenuMessages([]); + setMenuNotifications([]); + setUnreadMessagesCount(0); + setUnreadCount(0); } }, [user]); diff --git a/frontend/src/domains/new_dashboard/constants/initialData.ts b/frontend/src/domains/new_dashboard/constants/initialData.ts index f2a363e..3878986 100644 --- a/frontend/src/domains/new_dashboard/constants/initialData.ts +++ b/frontend/src/domains/new_dashboard/constants/initialData.ts @@ -4,8 +4,6 @@ import type { JobStatus, JobType, Mentor, - Message, - Notification, SearchPreferences, UserProfile, } from "../types"; @@ -149,44 +147,6 @@ export const initialMentors: Mentor[] = [ }, ]; -export const initialNotifications: Notification[] = [ - { - id: 1, - text: "Sua candidatura para Stellar Tech foi visualizada pelo recrutador.", - type: "info", - date: "Há 10 min", - }, - { - id: 2, - text: "O mentor Julio Silva aceitou o seu convite de mentoria para quarta-feira.", - type: "success", - date: "Há 2 horas", - }, - { - id: 3, - text: "Vaga compatível encontrada: Desenvolvedor React na TechCorp.", - type: "match", - date: "Há 1 dia", - }, -]; - -export const initialMessages: Message[] = [ - { - id: 1, - sender: "Julio Silva (Mentor)", - text: "Olá Bruna! Consegue enviar seu portfólio antes do nosso papo?", - date: "11:15", - origin: "mentor", - }, - { - id: 2, - sender: "RH Fintech Hub", - text: "Olá! Gostaríamos de marcar uma conversa técnica esta semana.", - date: "Ontem", - origin: "recruiter", - }, -]; - export const initialUser: UserProfile = { firstName: "Bruna", lastName: "Silva", diff --git a/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx b/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx index 57d70e4..20e529b 100644 --- a/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx +++ b/frontend/tests/unit/new_dashboard/branch-coverage.test.tsx @@ -139,6 +139,55 @@ describe("new_dashboard branch coverage", () => { expect(screen.getByText("Nenhuma notificação recente.")).toBeInTheDocument(); }); + it("limpa os feeds quando a API falha e mantém os estados vazios", async () => { + mockUseAuth.mockReturnValue({ + user: { email: "ana@exemplo.com" }, + logout: vi.fn(), + }); + vi.mocked(getDashboardNotificationFeed).mockRejectedValue( + new Error("API indisponível"), + ); + + renderWithRouter( +
, + ); + + await waitFor(() => { + expect(screen.queryByText("Julio Silva (Mentor)")).not.toBeInTheDocument(); + }); + + fireEvent.click(screen.getByLabelText("Mensagens")); + expect(screen.getByText("Nenhuma mensagem recente.")).toBeInTheDocument(); + expect(screen.queryByText("Julio Silva (Mentor)")).not.toBeInTheDocument(); + + fireEvent.click(screen.getByLabelText("Notificações")); + expect(screen.getByText("Nenhuma notificação recente.")).toBeInTheDocument(); + expect( + screen.queryByText( + "Vaga compatível encontrada: Desenvolvedor React na TechCorp.", + ), + ).not.toBeInTheDocument(); + }); + it("carrega feeds reais, limpa alertas e abre menus do header autenticado", async () => { const logout = vi.fn(); mockUseAuth.mockReturnValue({