Kairo-Jinkendo/frontend/src/utils/attentionSignals.test.js
Lars b9bfa9e5bd
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
AP1.16d + AP1.9c: Planning Debt in Attention und Cockpit-Signale.
Attention-Regeln planning_debt/execution_waiting; Portfolio-Kacheln zeigen Steuerungssignale.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 11:48:34 +02:00

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')
})
})