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

28 lines
1.0 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 { 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();
});
return structure.distributionBoard;
}
}