Add configurable distribution supply types
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
import { ProjectHistoryRepository } from "../src/db/repositories/project-history.repository.js";
|
||||
import { ProjectLocationStructureProjectCommandRepository } from "../src/db/repositories/project-location-structure-project-command.repository.js";
|
||||
import { consumers } from "../src/db/schema/consumers.js";
|
||||
import { distributionBoards } from "../src/db/schema/distribution-boards.js";
|
||||
import { floors } from "../src/db/schema/floors.js";
|
||||
import { projectRevisions } from "../src/db/schema/project-revisions.js";
|
||||
import { projects } from "../src/db/schema/projects.js";
|
||||
@@ -183,6 +184,52 @@ describe("project-location structure project command", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("does not undo a floor assigned to a distribution board", () => {
|
||||
const context = createTestDatabase();
|
||||
try {
|
||||
const repository =
|
||||
new ProjectLocationStructureProjectCommandRepository(context.db);
|
||||
const floor = createProjectFloorSnapshot("project-1", "EG", 0);
|
||||
const inserted = repository.execute({
|
||||
projectId: "project-1",
|
||||
expectedRevision: 0,
|
||||
source: "user",
|
||||
command: createProjectFloorInsertProjectCommand(floor),
|
||||
});
|
||||
context.db
|
||||
.insert(distributionBoards)
|
||||
.values({
|
||||
id: "board-1",
|
||||
projectId: "project-1",
|
||||
name: "UV-01",
|
||||
floorId: floor.id,
|
||||
supplyType: "AV",
|
||||
})
|
||||
.run();
|
||||
const undoStep = new ProjectHistoryRepository(
|
||||
context.db
|
||||
).getNextCommand("project-1", "undo");
|
||||
assert.ok(undoStep);
|
||||
assert.throws(
|
||||
() =>
|
||||
repository.execute({
|
||||
projectId: "project-1",
|
||||
expectedRevision: 1,
|
||||
source: "undo",
|
||||
historyTargetChangeSetId: undoStep.changeSetId,
|
||||
command: inserted.inverse,
|
||||
}),
|
||||
/assigned to a distribution board/
|
||||
);
|
||||
assert.equal(
|
||||
context.db.select().from(projectRevisions).all().length,
|
||||
1
|
||||
);
|
||||
} finally {
|
||||
context.close();
|
||||
}
|
||||
});
|
||||
|
||||
it("creates a stable room and supports persisted undo and redo", () => {
|
||||
const context = createTestDatabase();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user