spb/datacenterindex
Public
HTML 53.9%
TypeScript 44.5%
JavaScript 0.6%
SQL 0.5%
1import { describe, expect, it } from "vitest";2import { discoverySignificance, eventFingerprint, eventTitle, significanceFor, TRACKED_FACILITY_FIELDS } from "./events.js";34const spec = (field: string) => TRACKED_FACILITY_FIELDS.find((s) => s.field === field)!;56describe("event fingerprint", () => {7 it("is stable for the same entity/type/value/day and differs otherwise", () => {8 const a = eventFingerprint("facility", "fac_1", "capacity_changed", 48, "2026-09-11");9 expect(a).toBe(eventFingerprint("facility", "fac_1", "capacity_changed", 48, "2026-09-11"));10 expect(a).not.toBe(eventFingerprint("facility", "fac_1", "capacity_changed", 48, "2026-09-12"));11 expect(a).not.toBe(eventFingerprint("facility", "fac_1", "capacity_changed", 60, "2026-09-11"));12 expect(a).not.toBe(eventFingerprint("facility", "fac_2", "capacity_changed", 48, "2026-09-11"));13 expect(a).toMatch(/^[0-9a-f]{64}$/);14 });15});1617describe("significance", () => {18 it("follows the documented scale", () => {19 expect(significanceFor(spec("status"), "announced", "under_construction")).toBe(90);20 expect(significanceFor(spec("operatorId"), "op_a", "op_b")).toBe(85);21 expect(significanceFor(spec("itCapacityMw"), 100, 125)).toBe(80); // +25 %22 expect(significanceFor(spec("itCapacityMw"), 100, 110)).toBe(50); // +10 %23 expect(significanceFor(spec("plannedPowerMw"), 120, 180)).toBe(80);24 expect(significanceFor(spec("openedOn"), "2026", "2027-Q2")).toBe(60);25 expect(significanceFor(spec("facilityType"), "colocation", "hyperscale")).toBe(20);26 });27 it("discovery: 65 for big or pipeline facilities, 40 otherwise", () => {28 expect(discoverySignificance(80, false)).toBe(65);29 expect(discoverySignificance(10, true)).toBe(65);30 expect(discoverySignificance(10, false)).toBe(40);31 expect(discoverySignificance(null, false)).toBe(40);32 });33});3435describe("titles", () => {36 it("renders the planned capacity template", () => {37 const t = eventTitle("Compass Red Oak", spec("plannedPowerMw"), 120, 180);38 expect(t.summary).toBe("Planned capacity changed from 120 MW to 180 MW.");39 expect(t.title).toContain("planned capacity changed to 180 MW");40 });41 it("renders status and date templates", () => {42 expect(eventTitle("X", spec("status"), "announced", "under_construction").summary).toBe("Status changed from announced to under construction.");43 expect(eventTitle("X", spec("openedOn"), "2026", "2027-Q2").summary).toBe("Opening date changed from 2026 to Q2 2027.");44 });45});46