27 lines
1.0 KiB
JavaScript
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 });
|
|
}
|
|
});
|