You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
1015 B
TypeScript
23 lines
1015 B
TypeScript
// 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()
|
|
})
|
|
})
|