Commit Graph
6 Commits
Author SHA1 Message Date
Kevin L'Hereec 0c83a4ccb2 feat: TR-069 Exchange Viewer - structured MongoDB storage with SSE streaming and sequence diagram UI
- MongoDB storage: cwmp_exchanges collection with indexes (deviceId+timestamp, deviceId+sequenceNumber unique, TTL 24h)
- ExchangeStoreService: CWMP method extraction, per-device queue for ordering, retry logic, message cap (5000/device)
- Exchange API: GET/DELETE/SSE stream endpoints with Last-Event-ID reconnection
- CwmpLoggerMiddleware: dual-write (MongoDB + legacy files) with fire-and-forget
- Frontend: SequenceViewer (CPE↔ACS lifelines, arrows, auto-scroll, virtual scroll) + InspectorPanel (formatted XML, copy, syntax highlighting)
- Tr069Trace page: integrated new viewer with col-6/col-6 layout
- DeviceDetail page: collapsible exchange section when device is traced
- 14 property-based tests, 40+ unit tests, 5 integration tests
- Health check includes index verification
- Config: feature flags, SSE timeouts, retry policy
2026-06-03 15:52:44 +02:00
Kevin L'Hereec d9b3a1b810 fix: resolve flaky pagination integration test (isolated collection) 2026-06-02 18:10:35 +02:00
Kevin L'Hereec 5759809145 test: 80%+ line coverage achieved (512 tests)
- ComplianceUpdateState: provisioning code write, transition to executing-commands
- ConfigurationEvaluationState: full happy path with all phases
- Fix flaky integration tests (isolated collections)
- Coverage: 80.64% lines, 79.26% statements, 512 tests
2026-06-02 16:56:47 +02:00
Kevin L'Hereec 818c661f21 test: 508 tests, 79% line coverage - config eval happy path
- Full happy path test for ConfigurationEvaluationState
- Fix flaky integration tests
- Coverage stable at 79% lines
2026-06-02 16:54:04 +02:00
Kevin L'Hereec 12a1787151 test: 492 tests, 78% line coverage
- Device domain: updateFromValues, organizeParameters, identifier
- BaseModel: full CRUD mock tests
- DeviceModel: all methods mocked
- Other models: collectionName verification
- MainStateMachine: start, handleResponse, state transitions
- ConfigurationEvaluationState: init, GPN flow, GPN-unsupported skip
- MongodbProvider: getMongoDb guard
- device_utils: hash determinism
- vitest.config.ts: coverage scope (excludes HTTP layer)
- 492 tests passing, 78% line coverage
2026-06-02 16:45:19 +02:00
Kevin L'Hereec 003ef50a8e test: improve coverage — domain, protocol, references, integration DB tests
- Domain: DeviceId, Command, DeviceParameter, DeviceProperty, Mode
- Protocol: SOAP parsing, CWMPMessageBuilder (all methods)
- References: config_loader, WassupProvider (timeout, errors)
- Integration: MongoDB tests (CRUD, pagination, references)
- Fix: Home.vue IP lookup for Device.WANDevice path
- Total: 384 tests passing
2026-06-02 16:29:19 +02:00