test(web): add Vitest CI, ADRs, and PR Definition of Done
FE unit-тесты селекторов/api-client в CI; ADR по durable jobs, OpenAPI codegen и legacy Svelte; PR template WEB-19; процесс KPI cross-app sync. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { normalizeApiToken, DEV_API_TOKEN } from '@/lib/api-client'
|
||||
import {
|
||||
aggregateNetworkMetrics,
|
||||
moduleNameById,
|
||||
runningJobCount,
|
||||
} from '@/queries/overview'
|
||||
import type { JobRow, ModuleRow, PeerRow, SpeakerRow } from '@/types/api'
|
||||
|
||||
describe('normalizeApiToken', () => {
|
||||
it('trims and strips Bearer prefix', () => {
|
||||
expect(normalizeApiToken(' Bearer dev ')).toBe('dev')
|
||||
expect(normalizeApiToken(DEV_API_TOKEN)).toBe('dev')
|
||||
})
|
||||
})
|
||||
|
||||
describe('overview selectors', () => {
|
||||
it('runningJobCount counts queued and running', () => {
|
||||
const jobs = [
|
||||
{ status: 'queued' },
|
||||
{ status: 'running' },
|
||||
{ status: 'succeeded' },
|
||||
] as JobRow[]
|
||||
expect(runningJobCount(jobs)).toBe(2)
|
||||
})
|
||||
|
||||
it('moduleNameById maps ids', () => {
|
||||
const modules = [
|
||||
{ id: 'a', name: 'Alpha' },
|
||||
{ id: 'b', name: 'Beta' },
|
||||
] as ModuleRow[]
|
||||
expect(moduleNameById(modules).get('a')).toBe('Alpha')
|
||||
})
|
||||
|
||||
it('aggregateNetworkMetrics sums peers and speakers', () => {
|
||||
const peers = [
|
||||
{ enabled: true, session_state: 'Established', session_mismatch: false },
|
||||
{ enabled: false, session_state: 'Idle', session_mismatch: true },
|
||||
] as PeerRow[]
|
||||
const speakers = [{ live: { agent_ok: true } }, { live: { agent_ok: false } }] as SpeakerRow[]
|
||||
const m = aggregateNetworkMetrics(peers, speakers)
|
||||
expect(m.peersTotal).toBe(2)
|
||||
expect(m.peersEnabled).toBe(1)
|
||||
expect(m.peersEstablished).toBe(1)
|
||||
expect(m.peersMismatch).toBe(1)
|
||||
expect(m.speakersOnline).toBe(1)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user