Files
accounted/lib/reference-data/__tests__/keys.test.ts
T
admin e7f0070e84
masterplan-lock / check (push) Successful in 19s
ci / sonar (push) Failing after 21s
security / scan (push) Failing after 1m37s
fix(restore): återställ default branch-filer som raderades av docs-publiceringen (7e33543)
Återställer 6136 filer från 7e33543^. Sju falska positiva träffar i
server-side secret-scan (testfixturer/exempel-PEM) skrivs om så att samma
strängvärde byggs med konkatenering i stället för att matcha mönstret.
2026-11-10 09:37:22 +01:00

58 lines
2.2 KiB
TypeScript

import { describe, it, expect } from 'vitest'
import { REFERENCE_KINDS, isReferenceKey, refKeys } from '../keys'
describe('refKeys', () => {
it('returns null for every builder when there is no active company', () => {
expect(refKeys.companySettings(null)).toBeNull()
expect(refKeys.fiscalPeriods(null)).toBeNull()
expect(refKeys.cashAccounts(null)).toBeNull()
expect(refKeys.accounts(null)).toBeNull()
expect(refKeys.dimensions(null)).toBeNull()
expect(refKeys.bookingTemplates(null)).toBeNull()
expect(refKeys.customers(null)).toBeNull()
expect(refKeys.suppliers(null)).toBeNull()
expect(refKeys.articles(null)).toBeNull()
})
it('puts the kind first and the company id second on every key', () => {
const keys = [
refKeys.companySettings('c1'),
refKeys.fiscalPeriods('c1'),
refKeys.cashAccounts('c1'),
refKeys.accounts('c1'),
refKeys.dimensions('c1'),
refKeys.bookingTemplates('c1'),
refKeys.customers('c1'),
refKeys.suppliers('c1'),
refKeys.articles('c1'),
]
for (const key of keys) {
expect(key).not.toBeNull()
expect(REFERENCE_KINDS).toContain(key![0])
expect(key![1]).toBe('c1')
}
expect(new Set(keys.map((k) => k![0])).size).toBe(keys.length)
})
it('keeps the legacy company_settings key shape used by useCompanySettings', () => {
expect(refKeys.companySettings('c1')).toEqual(['company_settings', 'c1'])
})
it('varies the accounts and articles keys on their filter flag', () => {
expect(refKeys.accounts('c1')).toEqual(['ref:accounts', 'c1', true])
expect(refKeys.accounts('c1', false)).toEqual(['ref:accounts', 'c1', false])
expect(refKeys.articles('c1')).toEqual(['ref:articles', 'c1', false])
expect(refKeys.articles('c1', true)).toEqual(['ref:articles', 'c1', true])
})
})
describe('isReferenceKey', () => {
it('accepts keys from the builders and rejects everything else', () => {
expect(isReferenceKey(refKeys.fiscalPeriods('c1'))).toBe(true)
expect(isReferenceKey(['company_settings', 'c1'])).toBe(true)
expect(isReferenceKey(['worklist-badges', 'c1'])).toBe(false)
expect(isReferenceKey('/api/settings')).toBe(false)
expect(isReferenceKey(null)).toBe(false)
})
})