mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-03 13:53:22 +00:00
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
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> = {},
|
|
): 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(<DispatchSnapshotDetails data={buildData({ status })} locked />, {
|
|
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(
|
|
<DispatchSnapshotDetails data={buildData({ status: "In Progress" })} locked={false} />,
|
|
{ withAuth: false },
|
|
);
|
|
|
|
expect(screen.queryByText(/locked to further changes/i)).not.toBeInTheDocument();
|
|
});
|
|
});
|