mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-05 16:32:06 +00:00
90 lines
2.9 KiB
TypeScript
90 lines
2.9 KiB
TypeScript
import { screen } from "@testing-library/react";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import {
|
|
VENDOR_DIALOG_SURFACE_MAX_HEIGHT,
|
|
VendorDialog,
|
|
} from "@/app/(protected)/workorders/_components/list/table/cells/vendor-dialog";
|
|
import { VendorDialogCompanyCard } from "@/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-company-card";
|
|
import type { VendorDropdownItem } from "@/domain/work-orders/types/work-order";
|
|
import { renderWithProviders } from "@/test/test-utils";
|
|
|
|
vi.mock("@/domain/vendors/use-cases/use-add-technicians-to-company", () => ({
|
|
useAddTechniciansToCompany: () => ({
|
|
mutateAsync: vi.fn(),
|
|
isPending: false,
|
|
}),
|
|
}));
|
|
|
|
const LIVE_VENDOR: VendorDropdownItem = {
|
|
id: 10,
|
|
companyName: "Gateway Plumbing",
|
|
contactName: "Jordan Lee",
|
|
tradeSpecialties: "Plumbing",
|
|
address: "900 Live St",
|
|
distanceMiles: 4.2,
|
|
email: "dispatch@gateway.test",
|
|
};
|
|
|
|
describe("VendorDialogCompanyCard map preview queries", () => {
|
|
it("embeds the live vendor address", () => {
|
|
renderWithProviders(
|
|
<VendorDialogCompanyCard company="Gateway Plumbing" vendor={LIVE_VENDOR} />,
|
|
{ withAuth: false },
|
|
);
|
|
|
|
const frame = screen.getByTitle("Map of 900 Live St");
|
|
expect(frame).toHaveAttribute(
|
|
"src",
|
|
"https://www.google.com/maps?q=900%20Live%20St&output=embed",
|
|
);
|
|
});
|
|
|
|
it("embeds the frozen company's composed snapshot address, not the live one", () => {
|
|
renderWithProviders(
|
|
<VendorDialogCompanyCard
|
|
company="Frozen Vendor"
|
|
vendor={LIVE_VENDOR}
|
|
frozenCompany={{
|
|
name: "Frozen Vendor",
|
|
address: "200 Vendor Ave",
|
|
city: "Chicago",
|
|
state: "IL",
|
|
zip: "60602",
|
|
}}
|
|
/>,
|
|
{ withAuth: false },
|
|
);
|
|
|
|
const frame = screen.getByTitle("Map of 200 Vendor Ave, Chicago, IL, 60602");
|
|
expect(frame).toHaveAttribute(
|
|
"src",
|
|
"https://www.google.com/maps?q=200%20Vendor%20Ave%2C%20Chicago%2C%20IL%2C%2060602&output=embed",
|
|
);
|
|
expect(screen.queryByTitle("Map of 900 Live St")).not.toBeInTheDocument();
|
|
});
|
|
});
|
|
|
|
describe("VendorDialog scroll boundary", () => {
|
|
it("bounds the dialog surface and scrolls internally", () => {
|
|
renderWithProviders(
|
|
<VendorDialog
|
|
open
|
|
onOpenChange={vi.fn()}
|
|
vendorId={10}
|
|
company="Gateway Plumbing"
|
|
tech="Jordan Lee"
|
|
vendors={[LIVE_VENDOR]}
|
|
onSave={vi.fn()}
|
|
/>,
|
|
);
|
|
|
|
const surface = screen.getByRole("dialog");
|
|
expect(VENDOR_DIALOG_SURFACE_MAX_HEIGHT).toBe("55vh");
|
|
expect(surface.style.maxHeight).toBe(VENDOR_DIALOG_SURFACE_MAX_HEIGHT);
|
|
expect(surface.style.display).toBe("flex");
|
|
|
|
const content = screen.getByRole("dialog").querySelector(".MuiDialogContent-root");
|
|
expect(content).not.toBeNull();
|
|
expect(content).toHaveStyle({ overflowY: "auto", minHeight: "0px" });
|
|
});
|
|
});
|