# All files / src/db/repositories/drizzle test-helpers.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31

    239x

    239x

    239x

    239x

    239x

     /**
     * Test helpers for repository tests.
     *
     * Provides utilities for setting up in-memory test databases
     * with schema applied.
     */

    import Database from 'better-sqlite3';
    import { drizzle } from 'drizzle-orm/better-sqlite3';
    import type { DrizzleDatabase } from '../../index.js';
    import { ensureSchema } from '../../ensure-schema.js';
    import * as schema from '../../schema.js';

    /**
     * Create an in-memory test database with schema applied.
     * Returns a fresh Drizzle instance for each call.
     */
    export function createTestDatabase(): DrizzleDatabase {
      const sqlite = new Database(':memory:');

      // Enable foreign keys
      sqlite.pragma('foreign_keys = ON');

      const db = drizzle(sqlite, { schema });

      // Create all tables
      ensureSchema(db);

      return db;
    }