import assert from "node:assert/strict"; import { describe, it } from "node:test"; import { inferSectionKeyFromEquipmentIdentifier, inferSectionKeyFromLegacyInput, normalizeCircuitNumber, } from "../src/domain/services/legacy-consumer-migration-planner.js"; describe("legacy consumer migration planner", () => { it("normalizes valid circuit numbers and rejects invalid formats", () => { assert.equal(normalizeCircuitNumber(" -2f12 "), "-2F12"); assert.equal(normalizeCircuitNumber("2F12"), null); assert.equal(normalizeCircuitNumber(""), null); assert.equal(normalizeCircuitNumber(null), null); }); it("infers section from equipment identifier prefix", () => { assert.equal(inferSectionKeyFromEquipmentIdentifier("-1F4"), "lighting"); assert.equal(inferSectionKeyFromEquipmentIdentifier("-2F8"), "single_phase"); assert.equal(inferSectionKeyFromEquipmentIdentifier("-3F1"), "three_phase"); assert.equal(inferSectionKeyFromEquipmentIdentifier("-9F1"), null); }); it("infers section from category/phase when circuit number is missing", () => { assert.equal( inferSectionKeyFromLegacyInput({ id: "1", circuitNumber: null, category: "Beleuchtung", phaseType: null, phaseCount: null, }), "lighting" ); assert.equal( inferSectionKeyFromLegacyInput({ id: "2", circuitNumber: null, category: null, phaseType: "three-phase", phaseCount: null, }), "three_phase" ); assert.equal( inferSectionKeyFromLegacyInput({ id: "3", circuitNumber: null, category: null, phaseType: null, phaseCount: null, }), null ); }); });