Files
chimera-Public/test/server/ch-0109-migration-gate.test.js

27 lines
1.0 KiB
JavaScript

'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const os = require('node:os');
const path = require('node:path');
const database = require('../../src/database');
test('P1 migration gate has a report and no foreign-key violations', async () => {
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'chimera-p1-gate-'));
database.configure({ dataDir: root, logger: { info() {}, warn() {}, error() {} } });
try {
await database.initialize();
assert.deepEqual(database.checkForeignKeys(), []);
const reportRow = database.runQuery("SELECT report_json FROM migration_reports WHERE migration_name = 'legacy-to-v3'")[0];
assert.ok(reportRow?.report_json);
const report = JSON.parse(reportRow.report_json);
assert.equal(report.legacyGames, 0);
assert.deepEqual(report.legacyUnverifiedInstalls, []);
assert.deepEqual(report.ambiguousVersions, []);
} finally {
database.close();
fs.rmSync(root, { recursive: true, force: true });
}
});