import { fireEvent, render, screen } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import { WizardStepLocationServiceSelect } from "@/app/(protected)/workorders/_components/wizard/wizard-step-location-service-select"; import { EMPTY_WIZARD_DRAFT, type WorkOrderWizardDraft, } from "@/domain/work-orders/types/work-order-wizard"; describe("WizardStepLocationServiceSelect — vendor clear on service change", () => { it("clears vendor fields when the primary service changes", () => { const onPatch = vi.fn(); const draft: WorkOrderWizardDraft = { ...EMPTY_WIZARD_DRAFT, pm: "HVAC", vendorId: "9", vendorName: "Old Vendor", techPhone: "555-0100", }; render( , ); fireEvent.click(screen.getByRole("button", { name: "HVAC" })); fireEvent.click(screen.getByRole("button", { name: "Plumbing" })); expect(onPatch).toHaveBeenCalledWith( expect.objectContaining({ pm: "Plumbing", extraServices: [], vendorId: "", vendorName: "", techPhone: "", }), ); }); it("replaces the selected service in Service & Notes without persisting extraServices", () => { const onPatch = vi.fn(); const draft: WorkOrderWizardDraft = { ...EMPTY_WIZARD_DRAFT, pm: "HVAC", extraServices: ["Plumbing"], vendorId: "9", vendorName: "Old Vendor", techPhone: "555-0100", }; render( , ); fireEvent.click(screen.getByRole("button", { name: "Electrical" })); expect(onPatch).toHaveBeenCalledWith({ pm: "Electrical", serviceId: "3", extraServices: [], vendorId: "", vendorName: "", techPhone: "", }); }); });