23 lines
961 B
JavaScript
23 lines
961 B
JavaScript
import { describe, it, expect, beforeAll } from 'vitest';
|
|
import { resetDb } from '../helpers/db.js';
|
|
import { migrateUp } from '../../lib/db/migrate.js';
|
|
import * as map from '../../lib/db/repos/migration_map.js';
|
|
import { randomUUID } from 'crypto';
|
|
|
|
beforeAll(async () => { await resetDb(); await migrateUp(); });
|
|
|
|
describe('migration_map', () => {
|
|
it('seen() is null until record(), then returns the entity id', async () => {
|
|
const eid = randomUUID();
|
|
expect(await map.seen('void1', 'wiki_pages:1', 'page')).toBeNull();
|
|
await map.record('void1', 'wiki_pages:1', 'page', eid);
|
|
expect(await map.seen('void1', 'wiki_pages:1', 'page')).toBe(eid);
|
|
});
|
|
it('record() is idempotent on the unique key', async () => {
|
|
const eid = randomUUID();
|
|
await map.record('plans', 'a.md', 'page', eid);
|
|
await map.record('plans', 'a.md', 'page', randomUUID()); // ignored
|
|
expect(await map.seen('plans', 'a.md', 'page')).toBe(eid);
|
|
});
|
|
});
|