From 4b1b6eeced5acab0744acd2b7e5db60beffed3c0 Mon Sep 17 00:00:00 2001 From: Florian Zumpe Date: Wed, 2 Sep 2026 00:58:24 +0200 Subject: [PATCH] update schema test and minify migration --- .../migrations/20260901_add_route_activated_at.sql | 2 +- test/editor-database-schema.test.js | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/database/migrations/20260901_add_route_activated_at.sql b/database/migrations/20260901_add_route_activated_at.sql index 20df538..c67f8e8 100644 --- a/database/migrations/20260901_add_route_activated_at.sql +++ b/database/migrations/20260901_add_route_activated_at.sql @@ -1,3 +1,3 @@ -- Ergänzt den manuellen Freigabezeitpunkt für Strecken. -- Neue Strecken bleiben unveröffentlicht, solange activated_at is NULL. -ALTER TABLE routes ADD COLUMN activated_at TEXT NULL DEFAULT NULL; +ALTER TABLE routes ADD COLUMN activated_at TEXT DEFAULT NULL; \ No newline at end of file diff --git a/test/editor-database-schema.test.js b/test/editor-database-schema.test.js index 5210f69..74eedf4 100644 --- a/test/editor-database-schema.test.js +++ b/test/editor-database-schema.test.js @@ -12,10 +12,13 @@ async function read(relativePath) { test('initial database schema creates routes with a nullable activation timestamp', async () => { const schema = await read('database/schema.sql'); const migration = await read('database/migrations/20260901_add_route_activated_at.sql'); - const routeTable = schema.match(/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?routes\s*\([\s\S]*?\);/i); + const routeTable = schema.match(/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?routes\s*\([\s\S]*?\)\s+STRICT\s*;/i); - assert.ok(routeTable, 'database/schema.sql must define the routes table'); - assert.match(routeTable[0], /\bactivated_at\s+DATETIME\s+NULL\b/i); - assert.match(migration, /ALTER\s+TABLE\s+routes\s+ADD\s+COLUMN\s+activated_at\s+DATETIME\s+NULL/i); + assert.ok(routeTable, 'database/schema.sql must define the routes table as a STRICT SQLite table'); + assert.match(routeTable[0], /\bactivated_at\s+TEXT\s+(?:NULL\s+)?DEFAULT\s+NULL\b/i); + assert.doesNotMatch(routeTable[0], /\bactivated_at\s+DATETIME\b/i); + + assert.match(migration, /ALTER\s+TABLE\s+routes\s+ADD\s+COLUMN\s+activated_at\s+TEXT\s+(?:NULL\s+)?DEFAULT\s+NULL/i); + assert.doesNotMatch(migration, /\bactivated_at\s+DATETIME\b/i); assert.match(migration, /Neue Strecken bleiben unveröffentlicht|unpublished|activated_at is NULL/i); -}); +}); \ No newline at end of file