diff --git a/backend/tests/integration/schemaMirror.integration.test.ts b/backend/tests/integration/schemaMirror.integration.test.ts index 1d9d0ef..2ccc7d1 100644 --- a/backend/tests/integration/schemaMirror.integration.test.ts +++ b/backend/tests/integration/schemaMirror.integration.test.ts @@ -24,7 +24,7 @@ const SCHEMA = readFileSync( */ function mirroredTables(): string[] { const block = /export interface DB \{([^}]*)\}/.exec(SCHEMA)?.[1] ?? ''; - return [...block.matchAll(/^\s*([a-z_]+):/gm)].map((m) => m[1]!).sort(); + return [...block.matchAll(/^\s*([a-z0-9_]+):/gm)].map((m) => m[1]!).sort(); } async function liveTables(): Promise { @@ -40,17 +40,21 @@ async function liveTables(): Promise { /** * The guard for #217. * - * `src/db-drizzle/schema.ts` is generated by `drizzle-kit pull` and is a + * `src/db-kysely/schema.ts` is generated by `npm run db:types` and is a * read-only mirror of the real schema, which `backend/migrations` owns. Nothing - * makes anyone re-pull after writing a migration, and that is not hypothetical: - * the mirror sat missing `item_drafts` and `upload_links` from the moment #222 - * landed until #217, because it had been copied into src/ by hand and nobody - * had reason to look at it. + * makes anyone regenerate after writing a migration, and that is not + * hypothetical: the mirror sat missing `item_drafts` and `upload_links` from + * the moment #222 landed until #217, because it had been copied into src/ by + * hand and nobody had reason to look at it. * - * A stale mirror is worse than no mirror. Drizzle infers row types from it, so - * a converted query would type-check against a schema the database does not - * have and fail at run time with a column that does not exist — the exact class - * of drift the adoption was meant to close. + * A stale mirror is worse than no mirror. Row types are inferred from it, so a + * converted query would type-check against a schema the database does not have + * and fail at run time with a column that does not exist — the exact class of + * drift the adoption was meant to close. + * + * The generator changed in #305 and this test did not, because the drift it + * guards is a property of generating a mirror at all rather than of any + * library. */ describe('the generated schema mirror', () => { it('declares every table the migrations create', async () => {