mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-05 23:32:06 +00:00
Keep Extra uploads uncategorized until the dispatcher picks Aveta. Drive the shield from hasAvetaDocument after reopen.
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
import { fireEvent, screen } from "@testing-library/react";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { PMTypeCell } from "@/app/(protected)/workorders/_components/list/table/cells/pm-type-cell";
|
|
import { ServiceNotesDialog } from "@/app/(protected)/workorders/_components/list/table/cells/service-notes-dialog";
|
|
import { renderWithProviders } from "@/test/test-utils";
|
|
|
|
describe("Aveta Service & Notes", () => {
|
|
it("shows the Aveta shield on the Service cell when required", () => {
|
|
renderWithProviders(
|
|
<PMTypeCell
|
|
value="HVAC"
|
|
pmTypes={["HVAC"]}
|
|
serviceNotes=""
|
|
extraServices={[]}
|
|
avetaRequired
|
|
onSave={vi.fn()}
|
|
onSaveDetails={vi.fn()}
|
|
/>,
|
|
);
|
|
|
|
expect(screen.getByLabelText("Aveta required")).toBeInTheDocument();
|
|
});
|
|
|
|
it("shows the green Aveta shield when the document is attached", () => {
|
|
renderWithProviders(
|
|
<PMTypeCell
|
|
value="HVAC"
|
|
pmTypes={["HVAC"]}
|
|
serviceNotes=""
|
|
extraServices={[]}
|
|
avetaRequired
|
|
avetaAttached
|
|
onSave={vi.fn()}
|
|
onSaveDetails={vi.fn()}
|
|
/>,
|
|
);
|
|
|
|
expect(screen.getByLabelText("Aveta attached")).toBeInTheDocument();
|
|
});
|
|
|
|
it("persists avetaRequired from Service & Notes", () => {
|
|
const onSave = vi.fn();
|
|
renderWithProviders(
|
|
<ServiceNotesDialog
|
|
open
|
|
onOpenChange={vi.fn()}
|
|
pm="HVAC"
|
|
extraServices={[]}
|
|
serviceNotes=""
|
|
avetaRequired={false}
|
|
pmTypes={["HVAC"]}
|
|
onSave={onSave}
|
|
/>,
|
|
);
|
|
|
|
fireEvent.click(screen.getByRole("checkbox", { name: /Requires Aveta documentation/i }));
|
|
fireEvent.click(screen.getByRole("button", { name: "Save" }));
|
|
|
|
expect(onSave).toHaveBeenCalledWith(
|
|
expect.objectContaining({
|
|
pm: "HVAC",
|
|
avetaRequired: true,
|
|
}),
|
|
);
|
|
});
|
|
});
|