All checks were successful
Deploy Development / deploy (push) Successful in 46s
Test Suite / pytest-backend (push) Successful in 2m18s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 19s
Test Suite / playwright-smoke (push) Successful in 12s
Attention-Regeln planning_debt/execution_waiting; Portfolio-Kacheln zeigen Steuerungssignale. Co-authored-by: Cursor <cursoragent@cursor.com>
32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
groupAttentionByInitiative,
|
|
initiativeSignalSummary,
|
|
topAttentionSignals,
|
|
} from './attentionSignals.js'
|
|
|
|
describe('attentionSignals', () => {
|
|
const sample = [
|
|
{ initiative_id: 'a', kind: 'planning_debt', severity: 'warning' },
|
|
{ initiative_id: 'a', kind: 'execution_waiting', severity: 'info' },
|
|
{ initiative_id: 'b', kind: 'open_blocker', severity: 'critical' },
|
|
]
|
|
|
|
it('groups by initiative', () => {
|
|
const grouped = groupAttentionByInitiative(sample)
|
|
expect(grouped.a).toHaveLength(2)
|
|
expect(grouped.b).toHaveLength(1)
|
|
})
|
|
|
|
it('picks top signals by severity', () => {
|
|
const top = topAttentionSignals(sample.filter((i) => i.initiative_id === 'a'))
|
|
expect(top[0].kind).toBe('planning_debt')
|
|
})
|
|
|
|
it('summarizes initiative signals', () => {
|
|
const summary = initiativeSignalSummary(sample.filter((i) => i.initiative_id === 'b'))
|
|
expect(summary?.count).toBe(1)
|
|
expect(summary?.topSeverity).toBe('critical')
|
|
})
|
|
})
|