Verify legacy migration completion

This commit is contained in:
2026-07-23 19:16:41 +02:00
parent 030f18aeb0
commit d7ce135ac8
4 changed files with 94 additions and 3 deletions
@@ -12,6 +12,7 @@ import { LegacyConsumerMigrationRepository } from "../src/db/repositories/legacy
import { circuitDeviceRows } from "../src/db/schema/circuit-device-rows.js";
import { circuitSections } from "../src/db/schema/circuit-sections.js";
import { circuits } from "../src/db/schema/circuits.js";
import { consumers } from "../src/db/schema/consumers.js";
import { legacyConsumerCircuitMigrations } from "../src/db/schema/legacy-consumer-circuit-migrations.js";
import { legacyConsumerMigrationReports } from "../src/db/schema/legacy-consumer-migration-report.js";
import { projects } from "../src/db/schema/projects.js";
@@ -97,6 +98,61 @@ function assertNoMigrationWrites(context: DatabaseContext) {
}
describe("legacy consumer migration repository", () => {
it("reports every consumer without a completed migration mapping", async () => {
const { context, circuitListId, sectionId } = createTestDatabase();
try {
context.db
.insert(consumers)
.values([
{
id: "consumer-1",
projectId: "project-1",
circuitListId,
name: "Light 1",
quantity: 1,
installedPowerPerUnitKw: 0.1,
demandFactor: 1,
},
{
id: "consumer-2",
projectId: "project-1",
circuitListId: null,
name: "Light 2",
quantity: 1,
installedPowerPerUnitKw: 0.2,
demandFactor: 1,
},
])
.run();
const repository = new LegacyConsumerMigrationRepository(context.db);
assert.deepEqual(
(await repository.listUnmigratedConsumers()).sort((left, right) =>
left.id.localeCompare(right.id)
),
[
{
id: "consumer-1",
projectId: "project-1",
circuitListId,
},
{
id: "consumer-2",
projectId: "project-1",
circuitListId: null,
},
]
);
repository.persistCircuitListMigration(
migrationInput(circuitListId, sectionId)
);
assert.deepEqual(await repository.listUnmigratedConsumers(), []);
} finally {
context.close();
}
});
it("commits circuits, rows, mappings and report together", () => {
const { context, circuitListId, sectionId } = createTestDatabase();
try {