diff --git a/src/features/packets/PacketTableRow.tsx b/src/features/packets/PacketTableRow.tsx index 68b3212..5433e94 100644 --- a/src/features/packets/PacketTableRow.tsx +++ b/src/features/packets/PacketTableRow.tsx @@ -54,10 +54,10 @@ export function PacketTableRow({ packet, expanded, isFresh, onToggle }: PacketTa ×{packet.observationCount} - {observer ? (observer.displayName ?? observer.id.slice(0, 8)) : } + {observer ? (observer.displayName ?? observer.id.slice(0, 8)) : n/a} - {observer?.iata ?? } + {observer?.iata ?? n/a} diff --git a/tests/features/packets/PacketTableRow.test.tsx b/tests/features/packets/PacketTableRow.test.tsx index 3e55fb2..7a5e7c4 100644 --- a/tests/features/packets/PacketTableRow.test.tsx +++ b/tests/features/packets/PacketTableRow.test.tsx @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from "vitest"; -import { render, screen, fireEvent } from "@testing-library/react"; +import { render, screen, fireEvent, within } from "@testing-library/react"; import { PacketTableRow } from "../../../src/features/packets/PacketTableRow"; import type { PacketSummary } from "../../../src/types/api"; @@ -25,7 +25,13 @@ describe("PacketTableRow", () => { it("renders line 2 even when there is no path data, so row height is constant", () => { render( {}} />); - expect(screen.getByText("n/a")).toBeInTheDocument(); + expect(screen.getAllByText("n/a")).toHaveLength(3); + }); + + it("falls back to n/a in the observer and IATA cells when there is no observer", () => { + render( {}} />); + const line1 = within(screen.getByRole("button")); + expect(line1.getAllByText("n/a")).toHaveLength(2); }); it("falls back to the observer id when there is no display name", () => {