From 64b822f4fa9fd49b414ec7aabd2c5d79acbf57f8 Mon Sep 17 00:00:00 2001 From: MrAlders0n Date: Mon, 27 Jul 2026 19:43:58 -0400 Subject: [PATCH] Reorder PacketExpansion to show errors before empty state --- src/features/packets/PacketExpansion.tsx | 16 ++++++++-------- tests/features/packets/PacketExpansion.test.tsx | 8 ++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/features/packets/PacketExpansion.tsx b/src/features/packets/PacketExpansion.tsx index ee196a6..a412870 100644 --- a/src/features/packets/PacketExpansion.tsx +++ b/src/features/packets/PacketExpansion.tsx @@ -46,7 +46,14 @@ export function PacketExpansion({ packet, onOpenAnalyzer, onViewPath, selectedOb
- {noObservations ? ( + {isError ? ( +
+ Failed to load observations + +
+ ) : noObservations ? ( emptyState ) : isLoading ? (
@@ -58,13 +65,6 @@ export function PacketExpansion({ packet, onOpenAnalyzer, onViewPath, selectedOb /> ))}
- ) : isError ? ( -
- Failed to load observations - -
) : data && data.observations.length === 0 ? ( emptyState ) : data ? ( diff --git a/tests/features/packets/PacketExpansion.test.tsx b/tests/features/packets/PacketExpansion.test.tsx index b1b9074..db7a6cf 100644 --- a/tests/features/packets/PacketExpansion.test.tsx +++ b/tests/features/packets/PacketExpansion.test.tsx @@ -47,6 +47,14 @@ describe("PacketExpansion", () => { expect(screen.getByRole("button", { name: /retry/i })).toBeInTheDocument(); }); + it("shows error state even when summary count is zero", () => { + usePacketDetail.mockReturnValue({ isError: true, refetch: vi.fn() }); + render(); + expect(screen.getByText("Failed to load observations")).toBeInTheDocument(); + expect(screen.getByRole("button", { name: /retry/i })).toBeInTheDocument(); + expect(screen.queryByText("No observations")).not.toBeInTheDocument(); + }); + it("calls refetch when retry is clicked", () => { const refetch = vi.fn(); usePacketDetail.mockReturnValue({ isError: true, refetch });