test(web): add unit tests for decision graph transformations
Tests the pure functions from decision-graph.ts:
- decisionsToElements: converts GraphNode/GraphEdge to Cytoscape elements
- filterNowMode: filters for active decisions and chosen options only
- decisionStylesheet: generates Cytoscape styling rules
Coverage:
- P4f.AC2.1: Decision nodes render as diamonds with gold color
- P4f.AC2.2: Option nodes render as hexagons (chosen=green, rejected=gray)
- P4f.AC2.3: Outcome and revisit nodes with distinct shapes and colors
- P4f.AC2.4: Edge labels show relationship types
- P4f.AC3.1: Now mode includes only active/decided decisions, chosen options
- P4f.AC3.2: History mode includes full evolution with rejected/abandoned nodes
- Edge case handling: empty input arrays, endpoint filtering, realistic scenarios
27 tests total, all passing. Verifies complete decision graph transformation pipeline.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>