shoc-frontend-new/src/test/app/(protected)/workorders/slide-over-emergency-due-date.test.tsx
Arthur Bassi 7a30335ab8 feat(work-orders): add per-WO Aveta indicators and advanced filter
Dispatchers can flag Aveta on Service and Notes and filter those rows
without a site-level attribute.
2026-08-24 15:16:51 -03:00

78 lines
2.1 KiB
TypeScript

import { fireEvent, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import { SlideOverInfoTabEditView } from "@/app/(protected)/workorders/_components/detail/tabs/slide-over-info-tab-edit-view";
import { EMPTY_UPLIFT_SUMMARY } from "@/domain/work-orders/types/work-order-uplift";
import type { WorkOrderTableRow } from "@/domain/work-orders/types/work-order-table-row";
import { renderWithProviders } from "@/test/test-utils";
function row(overrides: Partial<WorkOrderTableRow> = {}): WorkOrderTableRow {
return {
id: 1,
woNumber: "24871",
site: "BK5",
type: "Emergency",
severity: 1,
dispatcherId: "",
dispatcherName: "",
scheduledOn: "2026-06-16",
completedDate: "",
targetWeek: "",
dayGroup: "",
dayLabel: "",
location: "Dallas",
locationId: "1",
pm: "Scrubber Pit",
serviceNotes: "",
extraServices: [],
vendorId: "",
company: "",
tech: "",
techPhone: "",
apptStart: "",
apptEnd: "",
apptTime: "",
status: "Scheduled",
docStatus: "No",
pocName: "",
pocPhone: "",
pocNotes: "",
additionalContacts: [],
dueDate: "2026-06-16",
rescheduleCount: 0,
carriedOver: 0,
isAddOn: false,
originalWeek: "",
originalDate: "",
isPastDue: false,
scheduleWeekOnly: false,
mediaCount: 0,
title: "",
priority: "",
primaryDispatchId: null,
rowVersion: "",
dispatchRowVersion: "",
flagColor: null,
upliftSummary: EMPTY_UPLIFT_SUMMARY,
...overrides,
};
}
describe("slide-over Emergency Due Date", () => {
it("opens the dedicated calendar dialog for Emergency", () => {
renderWithProviders(
<SlideOverInfoTabEditView
draft={row()}
users={[]}
sites={[]}
vendors={[]}
pmTypes={["Scrubber Pit"]}
allOrders={[]}
onDraftChange={vi.fn()}
/>,
);
fireEvent.click(screen.getByRole("button", { name: "Due Date" }));
expect(screen.getByRole("dialog")).toBeInTheDocument();
expect(screen.getByRole("heading", { name: "Due Date" })).toBeInTheDocument();
});
});