Add Revit catalog creation flow
This commit is contained in:
@@ -3,9 +3,12 @@ import { describe, it } from "node:test";
|
||||
import { createElement } from "react";
|
||||
import { renderToStaticMarkup } from "react-dom/server";
|
||||
import {
|
||||
createRevitProjectDevicePrefill,
|
||||
RevitCsvImportPlan,
|
||||
RevitCsvModal,
|
||||
} from "../src/frontend/components/revit-csv-modal.js";
|
||||
import { ProjectDeviceModal } from "../src/frontend/components/project-device-modal.js";
|
||||
import { RoomModal } from "../src/frontend/components/room-modal.js";
|
||||
import {
|
||||
applyExternalInitialImport,
|
||||
getExternalCsvConfiguration,
|
||||
@@ -98,6 +101,8 @@ describe("Revit CSV modal presentation", () => {
|
||||
createElement(RevitCsvModal, {
|
||||
currentRevision: 0,
|
||||
onClose: () => undefined,
|
||||
onCreateProjectDevice: async () => ({} as never),
|
||||
onCreateRoom: async () => ({} as never),
|
||||
onRevisionChange: () => undefined,
|
||||
projectId: "project-1",
|
||||
})
|
||||
@@ -148,6 +153,8 @@ describe("Revit CSV modal presentation", () => {
|
||||
familyLinks: { "Steckdose : Standard": "device-1" },
|
||||
isApplying: false,
|
||||
onApply: () => undefined,
|
||||
onCreateProjectDevice: () => undefined,
|
||||
onCreateRoom: () => undefined,
|
||||
onFamilyLinkChange: () => undefined,
|
||||
onRoomDecisionChange: () => undefined,
|
||||
plan,
|
||||
@@ -160,6 +167,78 @@ describe("Revit CSV modal presentation", () => {
|
||||
assert.match(markup, /101 · Büro/);
|
||||
assert.match(markup, /Steckdose : Standard/);
|
||||
assert.match(markup, /Erstimport übernehmen/);
|
||||
assert.match(markup, /Raum 101 neu anlegen/);
|
||||
assert.match(markup, /ProjectDevice für Steckdose : Standard neu anlegen/);
|
||||
assert.doesNotMatch(markup, /IFC-GUID/);
|
||||
});
|
||||
|
||||
it("prefills the existing room and ProjectDevice forms from Revit decisions", () => {
|
||||
const roomMarkup = renderToStaticMarkup(createElement(RoomModal, {
|
||||
floors: [{ id: "floor-1", projectId: "project-1", name: "EG", sortOrder: 0 }],
|
||||
initialValues: { roomNumber: "101", roomName: "Büro" },
|
||||
isSaving: false,
|
||||
onClose: () => undefined,
|
||||
onSave: async () => undefined,
|
||||
}));
|
||||
const deviceMarkup = renderToStaticMarkup(createElement(ProjectDeviceModal, {
|
||||
globalDevices: [],
|
||||
initialValues: {
|
||||
name: "socket",
|
||||
displayName: "Steckdose",
|
||||
category: "single_phase",
|
||||
quantity: 2,
|
||||
powerPerUnit: 0.1,
|
||||
simultaneityFactor: 1,
|
||||
},
|
||||
isSaving: false,
|
||||
onClose: () => undefined,
|
||||
onImportGlobal: async () => undefined,
|
||||
onSave: async () => undefined,
|
||||
}));
|
||||
|
||||
assert.match(roomMarkup, /value="101"/);
|
||||
assert.match(roomMarkup, /value="Büro"/);
|
||||
assert.match(deviceMarkup, /value="socket"/);
|
||||
assert.match(deviceMarkup, /value="Steckdose"/);
|
||||
assert.match(deviceMarkup, /value="2"/);
|
||||
});
|
||||
|
||||
it("converts mapped Revit watts into ProjectDevice kilowatts", () => {
|
||||
const plan = {
|
||||
familyGroups: [{
|
||||
familyAndType: "Steckdose : Standard",
|
||||
internalDeviceType: "socket",
|
||||
category: "single_phase",
|
||||
connectionKind: "230 V",
|
||||
}],
|
||||
objects: [{
|
||||
sourceValues: { familyAndType: "Steckdose : Standard" },
|
||||
suggestedPlanningValues: {
|
||||
displayName: "Arbeitsplatzsteckdose",
|
||||
effectiveQuantity: 4,
|
||||
powerPerUnitW: 250,
|
||||
simultaneityFactor: 0.8,
|
||||
cosPhi: 0.95,
|
||||
costGroup: "440",
|
||||
remark: "Aus Revit",
|
||||
},
|
||||
}],
|
||||
} as ExternalInitialImportPlanDto;
|
||||
|
||||
assert.deepEqual(
|
||||
createRevitProjectDevicePrefill(plan, "Steckdose : Standard"),
|
||||
{
|
||||
name: "socket",
|
||||
displayName: "Arbeitsplatzsteckdose",
|
||||
connectionKind: "230 V",
|
||||
category: "single_phase",
|
||||
quantity: 4,
|
||||
powerPerUnit: 0.25,
|
||||
simultaneityFactor: 0.8,
|
||||
cosPhi: 0.95,
|
||||
costGroup: "440",
|
||||
remark: "Aus Revit",
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user