mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-07 16:19:01 +00:00
Stop treating integration source as WorkOrderType. Enrich detail from board detail for SH-114/SH-183 gates. Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import type { WorkOrderBoardDetail } from "@/domain/work-orders/types/work-order-board-detail";
|
|
import type { WorkOrderDetail } from "@/domain/work-orders/types/work-order-detail";
|
|
import { enrichDetailClosabilityFromBoard } from "@/domain/work-orders/utils/enrich-detail-closability-from-board";
|
|
|
|
const baseDetail = {
|
|
id: 1,
|
|
internalWONumber: "SH-1",
|
|
workOrderNumber: "20260623001",
|
|
title: "Test",
|
|
location: "",
|
|
locationId: "",
|
|
locationZip: "",
|
|
assignedTo: "Alice",
|
|
dueDate: "",
|
|
createdDate: "",
|
|
createdDateFull: "",
|
|
description: "",
|
|
priority: "",
|
|
status: "Open",
|
|
po: "",
|
|
tt: "",
|
|
problem: "HVAC",
|
|
trade: "",
|
|
subTrade: "",
|
|
vendorNTE: "",
|
|
scheduledDate: "",
|
|
completedDate: "2026-07-15",
|
|
source: "PM",
|
|
type: "" as const,
|
|
docStatus: "" as const,
|
|
mediaCount: 0,
|
|
comments: [],
|
|
auditLog: [],
|
|
dispatches: [],
|
|
} satisfies WorkOrderDetail;
|
|
|
|
describe("enrichDetailClosabilityFromBoard", () => {
|
|
it("returns detail unchanged when board is undefined", () => {
|
|
expect(enrichDetailClosabilityFromBoard(baseDetail, undefined)).toBe(baseDetail);
|
|
});
|
|
|
|
it("overlays authoritative type, docStatus, and mediaCount from board", () => {
|
|
const board = {
|
|
info: { type: "PM" },
|
|
completion: { docStatus: "Yes" },
|
|
media: [{ id: "1" }, { id: "2" }],
|
|
} as WorkOrderBoardDetail;
|
|
|
|
const enriched = enrichDetailClosabilityFromBoard(baseDetail, board);
|
|
expect(enriched.type).toBe("PM");
|
|
expect(enriched.docStatus).toBe("Yes");
|
|
expect(enriched.mediaCount).toBe(2);
|
|
expect(enriched.source).toBe("PM");
|
|
expect(enriched.problem).toBe("HVAC");
|
|
});
|
|
});
|