import { describe, it, expect, beforeAll } from 'vitest'; import { resetDb } from '../helpers/db.js'; import { migrateUp } from '../../lib/db/migrate.js'; import * as repo from '../../lib/db/repos/dashboard_layout.js'; beforeAll(async () => { await resetDb(); await migrateUp(); }); describe('dashboard_layout repo', () => { it('returns defaults when unset', async () => { const l = await repo.get(); expect(l).toEqual({ card_order: [], hidden: [], sizes: {}, geom: {}, extras: [] }); }); it('upserts and reads back', async () => { await repo.put({ card_order: ['clock', 'weather'], hidden: ['jobs'], sizes: { weather: 's' } }); const l = await repo.get(); expect(l.card_order).toEqual(['clock', 'weather']); expect(l.hidden).toEqual(['jobs']); expect(l.sizes).toEqual({ weather: 's' }); }); it('second put overwrites the same single row', async () => { await repo.put({ card_order: ['host-perf'], hidden: [], sizes: {} }); const l = await repo.get(); expect(l.card_order).toEqual(['host-perf']); }); });