mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-05 01:22:06 +00:00
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { screen, waitFor } from "@testing-library/react";
|
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import { SlideOverAuditTab } from "@/app/(protected)/workorders/_components/detail/tabs/slide-over-audit-tab";
|
|
import type { WorkOrderAuditEntry } from "@/domain/work-orders/types/work-order";
|
|
import { renderWithProviders } from "@/test/test-utils";
|
|
|
|
const fetchUsers = vi.fn();
|
|
|
|
vi.mock("@/domain/work-orders/api/work-orders-api", () => ({
|
|
workOrdersApi: {
|
|
fetchUsers: (...args: unknown[]) => fetchUsers(...args),
|
|
},
|
|
}));
|
|
|
|
const DISPATCHER = { id: "d1", name: "Alex Dispatcher" };
|
|
const SCHEDULER = { id: "s1", name: "Pat Scheduler" };
|
|
|
|
const entry: WorkOrderAuditEntry = {
|
|
id: "a1",
|
|
fieldName: "AssignTo",
|
|
oldValue: "Unassigned",
|
|
newValue: "Morgan Blake",
|
|
action: "AssignmentChanged",
|
|
createdAt: "2026-06-01T13:10:00.000Z",
|
|
userName: "",
|
|
type: "manual",
|
|
dispatcherId: SCHEDULER.id,
|
|
};
|
|
|
|
describe("SlideOverAuditTab assignment actor", () => {
|
|
beforeEach(() => {
|
|
fetchUsers.mockReset();
|
|
fetchUsers.mockResolvedValue([SCHEDULER]);
|
|
});
|
|
|
|
it("names a scheduler actor who is not on the dispatcher lookup", async () => {
|
|
renderWithProviders(<SlideOverAuditTab entries={[entry]} users={[DISPATCHER]} />, {
|
|
withAuth: false,
|
|
});
|
|
|
|
await waitFor(() => {
|
|
expect(screen.getByText("Pat Scheduler")).toBeInTheDocument();
|
|
});
|
|
expect(screen.getByText('Changed Assigned To to "Morgan Blake"')).toBeInTheDocument();
|
|
expect(screen.queryByText("s1")).not.toBeInTheDocument();
|
|
});
|
|
});
|