import assert from "node:assert/strict"; import { describe, it } from "node:test"; import { applyLinkedProjectDeviceValues } from "../src/domain/services/consumer-linking.service.js"; describe("consumer linking service", () => { it("applies project-device values to linked consumers", () => { const input = { projectId: "p1", projectDeviceId: "d1", isLinkedToDevice: true, name: "Alt", quantity: 1, installedPowerPerUnitKw: 0.2, demandFactor: 0.8, }; const result = applyLinkedProjectDeviceValues(input, { displayName: "Kaffeemaschine", category: "Küche", quantity: 3, installedPowerPerUnitKw: 1.5, demandFactor: 0.6, phaseCount: 3, powerFactor: 0.9, note: "aus Vorlage", }); assert.equal(result.name, "Kaffeemaschine"); assert.equal(result.category, "Küche"); assert.equal(result.quantity, 3); assert.equal(result.installedPowerPerUnitKw, 1.5); assert.equal(result.demandFactor, 0.6); assert.equal(result.phaseCount, 3); assert.equal(result.powerFactor, 0.9); assert.equal(result.note, "aus Vorlage"); }); it("keeps values unchanged when entry is not linked", () => { const input = { projectId: "p1", projectDeviceId: "d1", isLinkedToDevice: false, name: "Eigener Name", quantity: 2, installedPowerPerUnitKw: 0.5, demandFactor: 1, }; const result = applyLinkedProjectDeviceValues(input, { displayName: "Vorlage", category: "Test", quantity: 9, installedPowerPerUnitKw: 9, demandFactor: 0.2, phaseCount: 1, powerFactor: 1, note: null, }); assert.equal(result.name, "Eigener Name"); assert.equal(result.quantity, 2); assert.equal(result.installedPowerPerUnitKw, 0.5); assert.equal(result.demandFactor, 1); }); });