// apps/hq/test/clients.test.ts import { describe, it, expect } from 'vitest' import { openDb } from '../src/db' import { createClient, listClients, updateClient } from '../src/repos-clients' describe('client registry', () => { it('creates with auto code, searches, updates with audit', () => { const db = openDb(':memory:') const c = createClient(db, 'u1', { name: 'Malabar Stores', stateCode: '32', contacts: [{ name: 'Ravi', email: 'ravi@malabar.in' }] }) expect(c.code).toBe('CL0001') expect(listClients(db, 'malabar')).toHaveLength(1) const up = updateClient(db, 'u1', c.id, { status: 'active', notes: 'AMC due Oct' }) expect(up.status).toBe('active') const audits = db.prepare(`SELECT action FROM audit_log WHERE entity='client'`).all() expect(audits.length).toBe(2) }) it('rejects a bad GSTIN checksum', () => { const db = openDb(':memory:') expect(() => createClient(db, 'u1', { name: 'X', stateCode: '32', gstin: '32AAAAA0000A1Z9' })).toThrow() }) })