From fa19fe89506b30c780377ba85af15fa20428e092 Mon Sep 17 00:00:00 2001 From: "borja (aider)" Date: Wed, 26 Mar 2025 23:20:31 +0100 Subject: [PATCH] fix: correct SQL syntax and improve db test coverage --- src/db.ts | 2 +- tests/unit/db.test.ts | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/db.ts b/src/db.ts index 09abae6..9f9858f 100644 --- a/src/db.ts +++ b/src/db.ts @@ -25,7 +25,7 @@ export function initializeDatabase() { CREATE TABLE IF NOT EXISTS users ( phone_number TEXT PRIMARY KEY, - wa_id TEXT NOT NULL, // WhatsApp's @s.whatsapp.net ID + wa_id TEXT NOT NULL, -- WhatsApp's @s.whatsapp.net ID name TEXT, last_seen TIMESTAMP ); diff --git a/tests/unit/db.test.ts b/tests/unit/db.test.ts index ba6b757..8c35fe2 100644 --- a/tests/unit/db.test.ts +++ b/tests/unit/db.test.ts @@ -11,15 +11,21 @@ describe('Database', () => { initializeDatabase(); }); - test('should create all required tables', () => { + test('should create all required tables with correct schema', () => { + // Verify tables exist const tables = db .query("SELECT name FROM sqlite_master WHERE type='table'") .all() .map((t: any) => t.name); - expect(tables).toContain('tasks'); - expect(tables).toContain('task_assignments'); - expect(tables).toContain('users'); - expect(tables).toContain('groups'); + expect(tables.sort()).toEqual(['groups', 'task_assignments', 'tasks', 'users'].sort()); + + // Verify tasks table schema + const tasksColumns = db + .query("PRAGMA table_info(tasks)") + .all() + .map((c: any) => c.name); + expect(tasksColumns).toContain('description'); + expect(tasksColumns).toContain('due_date'); }); });