'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 }); } });