Files
leistungsbilanz-ts/tests/legacy-consumer-migration-planner.test.ts
2026-05-03 21:16:52 +02:00

58 lines
1.7 KiB
TypeScript

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
);
});
});