import { describe, expect, it } from "vitest"; import { inferOperatorFromName, OPERATOR_INFERENCE_METHOD } from "./operator-inference.js"; describe("operator inference from a canonical name prefix", () => { it("recognises canonical brands and aliases at the start of a facility name", () => { expect(inferOperatorFromName("Equinix AM3")?.name).toBe("Equinix"); expect(inferOperatorFromName("Google Data Center, Elmina")?.name).toBe("Google"); expect(inferOperatorFromName("Google Data Center Fredericia")?.name).toBe("Google"); expect(inferOperatorFromName("Interxion FRA1")?.name).toBe("Digital Realty"); expect(inferOperatorFromName("Amazon SIN2")?.name).toBe("Amazon Web Services"); expect(inferOperatorFromName("NTT Slough 3")?.name).toBe("NTT Global Data Centers"); expect(inferOperatorFromName("Telehouse North")?.name).toBe("Telehouse"); expect(inferOperatorFromName("Digital Realty DUB10")?.name).toBe("Digital Realty"); expect(inferOperatorFromName("Equinix AM3")?.method).toBe(OPERATOR_INFERENCE_METHOD); }); it("accepts ambiguous brands only with data-center vocabulary or a facility code", () => { expect(inferOperatorFromName("Meta Odense Data Center")?.name).toBe("Meta"); expect(inferOperatorFromName("Apple Data Center Viborg")?.name).toBe("Apple"); expect(inferOperatorFromName("Switch Las Vegas 8")?.name).toBe("Switch"); expect(inferOperatorFromName("Vantage WA11")?.name).toBe("Vantage Data Centers"); expect(inferOperatorFromName("Aligned DC - PDX-01")?.name).toBe("Aligned Data Centers"); expect(inferOperatorFromName("Meta Building")).toBeNull(); expect(inferOperatorFromName("Switch")).toBeNull(); expect(inferOperatorFromName("Apple Store Odense")).toBeNull(); }); it("never infers from ordinary words, place names or brands buried inside the name", () => { expect(inferOperatorFromName("Green Data Center Norway")).toBeNull(); expect(inferOperatorFromName("Orange County Data Center")).toBeNull(); expect(inferOperatorFromName("Stream Building 4")).toBeNull(); expect(inferOperatorFromName("Bell Tower Data Center")).toBeNull(); expect(inferOperatorFromName("Bell Canada Exchange")?.name).toBe("Bell Canada"); expect(inferOperatorFromName("Datacenter Groningen (Google)")).toBeNull(); expect(inferOperatorFromName("Centro de Datos")).toBeNull(); expect(inferOperatorFromName("ساختمان مهندسین")).toBeNull(); expect(inferOperatorFromName("AWS")).toBeNull(); expect(inferOperatorFromName("Amazon Web Services")?.name).toBe("Amazon Web Services"); }); });