Replace PSD2 bank integration as the default with file-based bank import (CSV/XML), which better suits Swedish sole traders and small companies. Enable Banking is now an opt-in extension. - Phase 1: Extract generic transaction ingestion service (ingest.ts) with dedup, auto-categorization, and OCR-based invoice matching - Phase 2: Bank file parser library supporting Nordea, SEB, Swedbank, Handelsbanken CSV formats and ISO 20022 camt.053 XML - Phase 3: Database migration adding import_source, reference columns and bank_file_imports tracking table - Phase 4: Import wizard UI (5-step flow) and API routes for parse/execute - Phase 5: Move Enable Banking to extensions/enable-banking/ with commented-out loader entry for opt-in activation - Phase 6: 104 new tests (ingestion + all parser formats), fixing Nordea detection overlap and camt.053 XML tag collision bugs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { getRevenueAccount } from '../invoice-entries'
|
|
|
|
describe('getRevenueAccount', () => {
|
|
it('standard_25 returns 3001', () => {
|
|
expect(getRevenueAccount('standard_25')).toBe('3001')
|
|
})
|
|
|
|
it('reduced_12 returns 3002', () => {
|
|
expect(getRevenueAccount('reduced_12')).toBe('3002')
|
|
})
|
|
|
|
it('reduced_6 returns 3003', () => {
|
|
expect(getRevenueAccount('reduced_6')).toBe('3003')
|
|
})
|
|
|
|
it('reverse_charge returns 3308', () => {
|
|
expect(getRevenueAccount('reverse_charge')).toBe('3308')
|
|
})
|
|
|
|
it('export returns 3305', () => {
|
|
expect(getRevenueAccount('export')).toBe('3305')
|
|
})
|
|
|
|
it('exempt defaults to 3100 for enskild_firma', () => {
|
|
expect(getRevenueAccount('exempt')).toBe('3100')
|
|
expect(getRevenueAccount('exempt', 'enskild_firma')).toBe('3100')
|
|
})
|
|
|
|
it('exempt returns 3004 for aktiebolag', () => {
|
|
expect(getRevenueAccount('exempt', 'aktiebolag')).toBe('3004')
|
|
})
|
|
|
|
it('entityType does not affect non-exempt treatments', () => {
|
|
expect(getRevenueAccount('standard_25', 'aktiebolag')).toBe('3001')
|
|
expect(getRevenueAccount('reduced_12', 'aktiebolag')).toBe('3002')
|
|
expect(getRevenueAccount('export', 'aktiebolag')).toBe('3305')
|
|
})
|
|
})
|