66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
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);
|
|
});
|
|
});
|