feat(ST-1202): add lib/chart-colors.ts + vitest coverage

MD3-token-to-CSS-var mappings for STATUS, PRIORITY, VERIFY, JOB_STATUS
and SERIES_COLORS; all 5 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-02 15:32:54 +02:00
parent 85f73e43f6
commit 7404d586d1
2 changed files with 91 additions and 0 deletions

View file

@ -0,0 +1,52 @@
import { describe, it, expect } from 'vitest'
import {
STATUS_COLORS,
PRIORITY_COLORS,
VERIFY_COLORS,
JOB_STATUS_COLORS,
SERIES_COLORS,
} from '@/lib/chart-colors'
describe('chart-colors', () => {
it('STATUS_COLORS has all TaskStatus keys and non-empty values', () => {
const keys: (keyof typeof STATUS_COLORS)[] = ['TO_DO', 'IN_PROGRESS', 'REVIEW', 'DONE']
for (const key of keys) {
expect(STATUS_COLORS[key]).toBeTruthy()
expect(typeof STATUS_COLORS[key]).toBe('string')
}
})
it('PRIORITY_COLORS has keys 1-4 with non-empty values', () => {
const keys = [1, 2, 3, 4] as const
for (const key of keys) {
expect(PRIORITY_COLORS[key]).toBeTruthy()
expect(typeof PRIORITY_COLORS[key]).toBe('string')
}
})
it('VERIFY_COLORS has all VerifyResult keys and non-empty values', () => {
const keys: (keyof typeof VERIFY_COLORS)[] = ['ALIGNED', 'PARTIAL', 'EMPTY', 'DIVERGENT']
for (const key of keys) {
expect(VERIFY_COLORS[key]).toBeTruthy()
expect(typeof VERIFY_COLORS[key]).toBe('string')
}
})
it('JOB_STATUS_COLORS has all ClaudeJobStatus keys and non-empty values', () => {
const keys: (keyof typeof JOB_STATUS_COLORS)[] = [
'queued', 'claimed', 'running', 'done', 'failed', 'cancelled',
]
for (const key of keys) {
expect(JOB_STATUS_COLORS[key]).toBeTruthy()
expect(typeof JOB_STATUS_COLORS[key]).toBe('string')
}
})
it('SERIES_COLORS has 5 non-empty entries', () => {
expect(SERIES_COLORS).toHaveLength(5)
for (const color of SERIES_COLORS) {
expect(color).toBeTruthy()
expect(typeof color).toBe('string')
}
})
})