Two critical production bugs fixed: 1. **Alert type enum → string conversion** - Changed Alert.alert_type from Ecto.Enum to :string for flexibility - Updated all queries to use "device_down"/"device_up" strings instead of atoms - Fixed pattern matching in alerts.ex and device_monitor_worker.ex - Updated 44+ test files to use string literals 2. **SQL array indexing syntax error in activity feed** - Fixed PostgreSQL syntax: `array_agg(...)[1]` → `(array_agg(...))[1]` - Prevents "syntax error at or near [" in activity feed queries 3. **Added comprehensive timer cleanup tests** - Tests for mobile_qr_live.ex timer cleanup on terminate - Tests for agent_live index timer cleanup - Verifies memory leak fixes from previous commits Files changed: - lib/towerops/alerts.ex - lib/towerops/alerts/alert.ex - lib/towerops/activity_feed.ex - lib/towerops/workers/device_monitor_worker.ex - test/**/*_test.exs (44+ files with alert_type references) - test/towerops_web/live/mobile_qr_live_test.exs - test/towerops_web/live/agent_live_test.exs - test/towerops/workers/device_poller_worker_test.exs All tests passing except 1 unrelated brute force protection test. |
||
|---|---|---|
| .. | ||
| integration | ||
| mix/tasks | ||
| snmpkit | ||
| support | ||
| towerops | ||
| towerops_web | ||
| test_helper.exs | ||
| towerops_native_test.exs | ||