Remove legacy consumer API
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
@@ -1,38 +0,0 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { describe, it } from "node:test";
|
||||
import { createConsumerSchema } from "../src/shared/validation/consumer.schemas.js";
|
||||
|
||||
describe("consumer schema fixed option lists", () => {
|
||||
it("accepts valid predefined domain values", () => {
|
||||
const parsed = createConsumerSchema.safeParse({
|
||||
projectId: "p1",
|
||||
name: "Test",
|
||||
quantity: 1,
|
||||
installedPowerPerUnitKw: 1,
|
||||
demandFactor: 1,
|
||||
deviceType: "Beleuchtung",
|
||||
phaseType: "3-phasig",
|
||||
tradeOrCostGroup: "KG 440 Starkstromanlagen",
|
||||
group: "Technik",
|
||||
protectionType: "LS",
|
||||
protectionCharacteristic: "C",
|
||||
cableType: "NYM-J",
|
||||
cableCrossSection: "2,5 mm²",
|
||||
});
|
||||
|
||||
assert.equal(parsed.success, true);
|
||||
});
|
||||
|
||||
it("rejects unknown domain values", () => {
|
||||
const parsed = createConsumerSchema.safeParse({
|
||||
projectId: "p1",
|
||||
name: "Test",
|
||||
quantity: 1,
|
||||
installedPowerPerUnitKw: 1,
|
||||
demandFactor: 1,
|
||||
deviceType: "Irgendwas",
|
||||
});
|
||||
|
||||
assert.equal(parsed.success, false);
|
||||
});
|
||||
});
|
||||
@@ -126,6 +126,12 @@ describe("legacy consumer migration repository", () => {
|
||||
.run();
|
||||
const repository = new LegacyConsumerMigrationRepository(context.db);
|
||||
|
||||
assert.deepEqual(
|
||||
(await repository.listSourceConsumersByCircuitList(circuitListId)).map(
|
||||
(consumer) => consumer.id
|
||||
),
|
||||
["consumer-1"]
|
||||
);
|
||||
assert.deepEqual(
|
||||
(await repository.listUnmigratedConsumers()).sort((left, right) =>
|
||||
left.id.localeCompare(right.id)
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const vitest_1 = require("vitest");
|
||||
const power_calculation_js_1 = require("../src/domain/calculations/power-calculation.js");
|
||||
(0, vitest_1.describe)("power calculation", () => {
|
||||
(0, vitest_1.it)("calculates installed power", () => {
|
||||
const result = (0, power_calculation_js_1.calculateInstalledPowerKw)({
|
||||
quantity: 4,
|
||||
installedPowerPerUnitKw: 1.2,
|
||||
demandFactor: 0.8,
|
||||
});
|
||||
(0, vitest_1.expect)(result).toBeCloseTo(4.8);
|
||||
});
|
||||
(0, vitest_1.it)("calculates demand power", () => {
|
||||
const result = (0, power_calculation_js_1.calculateDemandPowerKw)({
|
||||
quantity: 4,
|
||||
installedPowerPerUnitKw: 1.2,
|
||||
demandFactor: 0.8,
|
||||
});
|
||||
(0, vitest_1.expect)(result).toBeCloseTo(3.84);
|
||||
});
|
||||
(0, vitest_1.it)("handles zero quantity", () => {
|
||||
const result = (0, power_calculation_js_1.calculateInstalledPowerKw)({
|
||||
quantity: 0,
|
||||
installedPowerPerUnitKw: 3,
|
||||
demandFactor: 0.9,
|
||||
});
|
||||
(0, vitest_1.expect)(result).toBe(0);
|
||||
});
|
||||
(0, vitest_1.it)("handles zero demand factor", () => {
|
||||
const result = (0, power_calculation_js_1.calculateDemandPowerKw)({
|
||||
quantity: 5,
|
||||
installedPowerPerUnitKw: 2,
|
||||
demandFactor: 0,
|
||||
});
|
||||
(0, vitest_1.expect)(result).toBe(0);
|
||||
});
|
||||
(0, vitest_1.it)("calculates single-phase current", () => {
|
||||
const current = (0, power_calculation_js_1.calculateCurrentA)({
|
||||
demandPowerKw: 2.3,
|
||||
voltageV: 230,
|
||||
phaseCount: 1,
|
||||
powerFactor: 0.95,
|
||||
});
|
||||
(0, vitest_1.expect)(current).toBeCloseTo(10.53, 2);
|
||||
});
|
||||
(0, vitest_1.it)("calculates three-phase current", () => {
|
||||
const current = (0, power_calculation_js_1.calculateCurrentA)({
|
||||
demandPowerKw: 9.5,
|
||||
voltageV: 400,
|
||||
phaseCount: 3,
|
||||
powerFactor: 0.9,
|
||||
});
|
||||
(0, vitest_1.expect)(current).toBeCloseTo(15.23, 2);
|
||||
});
|
||||
});
|
||||
@@ -1,65 +0,0 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import {
|
||||
calculateCurrentA,
|
||||
calculateDemandPowerKw,
|
||||
calculateInstalledPowerKw,
|
||||
} from "../src/domain/calculations/power-calculation.js";
|
||||
|
||||
describe("power calculation", () => {
|
||||
it("calculates installed power", () => {
|
||||
const result = calculateInstalledPowerKw({
|
||||
quantity: 4,
|
||||
installedPowerPerUnitKw: 1.2,
|
||||
demandFactor: 0.8,
|
||||
});
|
||||
assert.ok(Math.abs(result - 4.8) < 0.00001);
|
||||
});
|
||||
|
||||
it("calculates demand power", () => {
|
||||
const result = calculateDemandPowerKw({
|
||||
quantity: 4,
|
||||
installedPowerPerUnitKw: 1.2,
|
||||
demandFactor: 0.8,
|
||||
});
|
||||
assert.ok(Math.abs(result - 3.84) < 0.00001);
|
||||
});
|
||||
|
||||
it("handles zero quantity", () => {
|
||||
const result = calculateInstalledPowerKw({
|
||||
quantity: 0,
|
||||
installedPowerPerUnitKw: 3,
|
||||
demandFactor: 0.9,
|
||||
});
|
||||
assert.equal(result, 0);
|
||||
});
|
||||
|
||||
it("handles zero demand factor", () => {
|
||||
const result = calculateDemandPowerKw({
|
||||
quantity: 5,
|
||||
installedPowerPerUnitKw: 2,
|
||||
demandFactor: 0,
|
||||
});
|
||||
assert.equal(result, 0);
|
||||
});
|
||||
|
||||
it("calculates single-phase current", () => {
|
||||
const current = calculateCurrentA({
|
||||
demandPowerKw: 2.3,
|
||||
voltageV: 230,
|
||||
phaseCount: 1,
|
||||
powerFactor: 0.95,
|
||||
});
|
||||
assert.ok(Math.abs(current - 10.53) < 0.02);
|
||||
});
|
||||
|
||||
it("calculates three-phase current", () => {
|
||||
const current = calculateCurrentA({
|
||||
demandPowerKw: 9.5,
|
||||
voltageV: 400,
|
||||
phaseCount: 3,
|
||||
powerFactor: 0.9,
|
||||
});
|
||||
assert.ok(Math.abs(current - 15.23) < 0.02);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user