Files
leistungsbilanz-ts/tests/support/distribution-board-fixture.ts
T

32 lines
1.2 KiB
TypeScript

import type { AppDatabase } from "../../src/db/database-context.js";
import { circuitLists } from "../../src/db/schema/circuit-lists.js";
import { circuitSections } from "../../src/db/schema/circuit-sections.js";
import { distributionBoardComponents } from "../../src/db/schema/distribution-board-components.js";
import { distributionBoards } from "../../src/db/schema/distribution-boards.js";
import { createDistributionBoardStructureSnapshot } from "../../src/domain/models/distribution-board-structure-project-command.model.js";
export class DistributionBoardFixtureRepository {
constructor(private readonly database: AppDatabase) {}
createWithCircuitListAndDefaultSections(
projectId: string,
name: string
) {
const structure = createDistributionBoardStructureSnapshot(
projectId,
name
);
this.database.transaction((tx) => {
tx.insert(distributionBoards)
.values(structure.distributionBoard)
.run();
tx.insert(circuitLists).values(structure.circuitList).run();
tx.insert(circuitSections).values(structure.sections).run();
tx.insert(distributionBoardComponents)
.values(structure.components)
.run();
});
return structure.distributionBoard;
}
}