spaxel/dashboard
jedarden 4c221418c1 test(proactive): fix localStorage state isolation between tests
Move localStorage.clear() to parent beforeEach to ensure module
initialization always starts with clean state. This fixes test
isolation where localStorage data from previous tests was being
loaded by the module before the nested beforeEach could clear it.

The repeated-setting change detection feature is already fully
implemented in proactive.js with:
- Setting change tracking in localStorage (24h window)
- Help prompt after 3+ changes for qualifying settings
- Guided calibration flow with false positive and missed motion tests
- Value suggestions based on diurnal baseline SNR and link health
- Apply suggested value button

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 00:37:50 -04:00
..
css feat(dashboard): add iOS Safari safe area CSS support 2026-04-25 12:40:52 -04:00
js test(proactive): fix localStorage state isolation between tests 2026-05-04 00:37:50 -04:00
node_modules feat(feedback): enhance false positive explanations with diagnostic context 2026-04-25 12:35:04 -04:00
test-results feat(feedback): enhance false positive explanations with diagnostic context 2026-04-25 12:35:04 -04:00
tests feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
ambient.html feat(explainability): detection explainability overlay with per-link contributions, Fresnel zones, and BLE identity 2026-04-24 19:23:55 -04:00
fleet.html feat(explainability): detection explainability overlay with per-link contributions, Fresnel zones, and BLE identity 2026-04-24 19:23:55 -04:00
help_articles.json feat(dashboard): polish tap-to-jump UX and remove expert-mode gating 2026-04-24 23:16:56 -04:00
index.html feat(explainability): detection explainability overlay with per-link contributions, Fresnel zones, and BLE identity 2026-04-24 19:23:55 -04:00
integrations.html feat(explainability): detection explainability overlay with per-link contributions, Fresnel zones, and BLE identity 2026-04-24 19:23:55 -04:00
jest.config.js feat: implement spatial quick actions context menu for 3D scene 2026-04-10 22:56:17 -04:00
live.html feat(dashboard): add layer management module for toggle controls 2026-04-25 00:15:39 -04:00
package-lock.json feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
package.json feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
playwright.config.js feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
README.md feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
setup.html feat(explainability): detection explainability overlay with per-link contributions, Fresnel zones, and BLE identity 2026-04-24 19:23:55 -04:00

Spaxel Dashboard

Running Tests

Unit Tests (Jest)

npm test

Accessibility Tests (axe-core + Playwright)

# First-time setup: install browsers
npx playwright install --with-deps chromium

# Run accessibility gate
npm run test:a11y

The accessibility test loads each dashboard page (index, live, fleet, setup, integrations) via a local static server and asserts zero WCAG 2A/2AA violations using @axe-core/playwright. CI fails the build if any violation is introduced.

CI Integration (Argo Workflows)

Add the following step to the spaxel-build WorkflowTemplate before the container build:

- name: a11y-gate
  container:
    image: node:20-bookworm-slim
    command: [sh, -c]
    args:
      - |
        cd dashboard
        npm ci
        npx playwright install --with-deps chromium
        npm run test:a11y
    resources:
      limits:
        memory: 512Mi
        cpu: "1"