diff --git a/frontend/src/domains/new_dashboard/components/layout/Header.tsx b/frontend/src/domains/new_dashboard/components/layout/Header.tsx
index 43f96e4..0ecb2cc 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();
@@ -117,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 f78f528..20e529b 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,60 @@ 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)"));
+ fireEvent.click(screen.getByLabelText("Notificações"));
+ 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.getByRole("heading", { name: "Julio Silva (Mentor)" }),
- ).toBeInTheDocument();
- expect(screen.getByText("Mentoria")).toBeInTheDocument();
- expect(screen.getAllByRole("button", { name: "Fechar" })).toHaveLength(2);
+ 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 () => {