Files
accounted/lib/reports/__tests__/date-range.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

61 lines
1.9 KiB
TypeScript

import { describe, it, expect } from 'vitest'
import { parseReportDateRange } from '../date-range'
const period = { period_start: '2026-01-01', period_end: '2026-12-31' }
function paramsOf(obj: Record<string, string>): URLSearchParams {
return new URLSearchParams(obj)
}
describe('parseReportDateRange', () => {
it('returns an empty range when no params are provided', () => {
const result = parseReportDateRange(paramsOf({}), period)
expect(result.ok).toBe(true)
if (result.ok) expect(result.range).toEqual({})
})
it('accepts valid in-period dates', () => {
const result = parseReportDateRange(
paramsOf({ from_date: '2026-03-01', to_date: '2026-05-31' }),
period,
)
expect(result.ok).toBe(true)
if (result.ok) {
expect(result.range.fromDate).toBe('2026-03-01')
expect(result.range.toDate).toBe('2026-05-31')
}
})
it('rejects malformed from_date', () => {
const result = parseReportDateRange(paramsOf({ from_date: '2026/03/01' }), period)
expect(result.ok).toBe(false)
})
it('rejects from_date before period start', () => {
const result = parseReportDateRange(paramsOf({ from_date: '2025-12-31' }), period)
expect(result.ok).toBe(false)
})
it('rejects to_date after period end', () => {
const result = parseReportDateRange(paramsOf({ to_date: '2027-01-01' }), period)
expect(result.ok).toBe(false)
})
it('rejects reversed range', () => {
const result = parseReportDateRange(
paramsOf({ from_date: '2026-06-01', to_date: '2026-05-01' }),
period,
)
expect(result.ok).toBe(false)
})
it('accepts a single boundary date (only from_date)', () => {
const result = parseReportDateRange(paramsOf({ from_date: '2026-06-01' }), period)
expect(result.ok).toBe(true)
if (result.ok) {
expect(result.range.fromDate).toBe('2026-06-01')
expect(result.range.toDate).toBeUndefined()
}
})
})