import { screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { DispatchSnapshotDetails } from "@/app/v/[token]/dispatch/_components/dispatch-snapshot-details"; import type { VendorPortalDispatchDetail } from "@/domain/vendor-portal/types/vendor-portal"; import { renderWithProviders } from "@/test/test-utils"; function buildData( overrides: Partial = {}, ): VendorPortalDispatchDetail { return { id: 9, dispatchNumber: "DSP-9", status: "Verified", nteAmount: 500, checklist: [], comments: [], upliftRequests: [], signoffs: [], documents: [], ...overrides, }; } describe("DispatchSnapshotDetails locked banner", () => { it.each(["Verified", "Cancelled", "Refused"])( "states that comments remain open when status is %s", (status) => { renderWithProviders(, { withAuth: false, }); expect( screen.getByText( new RegExp( `This dispatch is ${status.toLowerCase()} and locked to further changes\\. Comments remain open\\.`, "i", ), ), ).toBeInTheDocument(); expect(screen.queryByText(/sign-off/i)).not.toBeInTheDocument(); }, ); it("hides the locked banner when the dispatch is not locked", () => { renderWithProviders( , { withAuth: false }, ); expect(screen.queryByText(/locked to further changes/i)).not.toBeInTheDocument(); }); });