mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-10-23 22:33:05 +00:00
chore(tests): move root test-*.js into tests/unit and tests/e2e
The repo root held 290 test-*.js files. They move, with history, to: - tests/unit/: the 177 standalone suites that test-all.sh runs - tests/e2e/: the 113 suites classified in scripts/non-unit-tests.json The split is the one the inventory already had, so no suite changes group. test-all.sh, non-unit-tests.json, deploy.yml and the docs are updated in the same commit, and the inventory guard now also rejects any test-*.js left in the repo root, so it proves the move is complete. Tests treated __dirname as the repo root. Each now declares REPO_ROOT = path.resolve(__dirname, '..', '..') and uses that instead; sibling requires across the two folders are re-pointed. Suites still run with the repo root as the working directory. `sh test-all.sh` prints the same 4,940 lines before and after, apart from timings. test-fixtures/ and testdata/ stay put: Go tests and internal/dbschema reference them. Refs #1981, #1385. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SJZ75CWob1eMXeTa8Q2nLc
This commit is contained in:
1 parent
5430bc7923
commit
fcf86980fe
300 files changed
+833
-682
No files matched your search
@@ -28,7 +28,7 @@ You will pay special attention to the following areas during your review:
|
||||
- **Project Architecture**: Does the PR respect the single Node.js server + static frontend architecture? Are changes in the right place?
|
||||
|
||||
### 2. Testing and Validation
|
||||
- **No commit without tests**: Is the backend logic change covered by unit tests? Is `test-packet-filter.js` or `test-aging.js` updated if necessary?
|
||||
- **No commit without tests**: Is the backend logic change covered by unit tests? Is `tests/unit/test-packet-filter.js` or `tests/unit/test-aging.js` updated if necessary?
|
||||
- **Browser Validation**: Has the contributor confirmed the change works in a browser? Is there a screenshot for visual changes?
|
||||
- **Cache Busters**: If any `public/` assets (`.js`, `.css`) were modified, has the cache buster in `public/index.html` been bumped in the *same commit*? This is critical.
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ You will pay special attention to the following areas during your review:
|
||||
- **Project Architecture**: Does the PR respect the single Node.js server + static frontend architecture? Are changes in the right place?
|
||||
|
||||
### 2. Testing and Validation
|
||||
- **No commit without tests**: Is the backend logic change covered by unit tests? Is `test-packet-filter.js` or `test-aging.js` updated if necessary?
|
||||
- **No commit without tests**: Is the backend logic change covered by unit tests? Is `tests/unit/test-packet-filter.js` or `tests/unit/test-aging.js` updated if necessary?
|
||||
- **Browser Validation**: Has the contributor confirmed the change works in a browser? Is there a screenshot for visual changes?
|
||||
- **Cache Busters**: If any `public/` assets (`.js`, `.css`) were modified, has the cache buster in `public/index.html` been bumped in the *same commit*? This is critical.
|
||||
|
||||
|
||||
@@ -472,7 +472,7 @@ jobs:
|
||||
|
||||
- name: Run Playwright E2E tests (fail-fast)
|
||||
run: |
|
||||
BASE_URL=http://localhost:13581 node test-e2e-playwright.js 2>&1 | tee e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-e2e-playwright.js 2>&1 | tee e2e-output.txt
|
||||
# M5+M6 of #1668 — axe-core CI gate.
|
||||
# M5: color-contrast on desktop dark+light.
|
||||
# M6: expanded ruleset (image-alt, label, aria-required-attr,
|
||||
@@ -483,100 +483,100 @@ jobs:
|
||||
# Allowlist: tests/a11y-allowlist.yaml (0 entries — hard pass policy).
|
||||
# Per-viewport summary printed at the end; any net>0 fails the build.
|
||||
BASE_URL=http://localhost:13581 AXE_SCREENSHOT_DIR=/tmp/axe-1668 \
|
||||
node test-a11y-axe-1668.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-filter-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-issue-1087-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-issue-1111-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-map-modal-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-map-nodes-pagination-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-observer-iata-1188-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1639-observers-sort-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1758-ng-filter-rerenders-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-fluid-1055-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-priority-1102-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-priority-1311-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-priority-1391-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1413-nav-overlap-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1400-nav-vertical-clip.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-more-floor-1139-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-bottom-nav-1061-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-gestures-1062-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-gestures-1185-scroll-discriminator-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-gesture-hints-1065-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-touch-gestures-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-table-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-charts-fluid-1058-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-slideover-1056-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1692-packets-init-parallel-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-slideover-1168-munger-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-logo-pulse-1173-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1122-packets-filter-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1128-packets-layout-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1128-multi-viewport-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1136-live-region-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-live-multibyte-only-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1150-404-state-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1146-path-link-contrast-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 node test-issue-1705-subpath-contrast-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1147-section-order-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1151-orphan-separators-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1486-collapse-reopens-detail-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-logo-rebrand-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-logo-theme-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-logo-default-sage-teal-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1109-hamburger-dropdown-visible-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-live-layout-1178-1179-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1205-live-controls-anchor-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-live-mql-leak-1180-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1204-live-panel-structure-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1234-live-chrome-pass2-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1206-vcr-overlap-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1244-live-vcr-row-hints-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1510-live-nav-pin-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-live-fullscreen-1572-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1599-replay-freeze-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1648-m1-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1648-m2-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1648-m3-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1648-m4-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1657-analytics-channels-group-sprites-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1224-channels-mobile-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1367-channels-chat-app-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1236-map-mobile-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1329-map-controls-accordion-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1273-qr-overlay-height-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1281-location-row-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1279-legend-p2-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-issue-1799-label-vocab-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-home-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-path-inspector-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1206-resize-observer-leak-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-nav-drawer-1064-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-audio-live-1297-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-audio-lab-1297-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-decrypt-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-qr-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-channel-color-picker-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-customize-theme-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-customize-branding-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-customize-display-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node test-customize-export-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-drag-manager-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1567-corner-clears-drag-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1306-collisions-terminology-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1374-route-map-a11y-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-list-render-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-selection-flow-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-add-modal-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-share-color-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-ws-batch-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-channels-ws-race-1498-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1487-byop-modal-layout-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1630-reach-mobile-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-node-reach-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node test-issue-1640-compare-discovery-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 node test-neighbor-map-btn-clip-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
node tests/e2e/test-a11y-axe-1668.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-filter-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-issue-1087-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-issue-1111-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-map-modal-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-map-nodes-pagination-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-observer-iata-1188-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1639-observers-sort-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1758-ng-filter-rerenders-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-fluid-1055-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-priority-1102-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-priority-1311-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-priority-1391-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1413-nav-overlap-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1400-nav-vertical-clip.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-more-floor-1139-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-bottom-nav-1061-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-gestures-1062-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-gestures-1185-scroll-discriminator-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-gesture-hints-1065-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-touch-gestures-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-table-fluid-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-charts-fluid-1058-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-slideover-1056-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1692-packets-init-parallel-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-slideover-1168-munger-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-logo-pulse-1173-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1122-packets-filter-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1128-packets-layout-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1128-multi-viewport-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1136-live-region-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-live-multibyte-only-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1150-404-state-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1146-path-link-contrast-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 node tests/e2e/test-issue-1705-subpath-contrast-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1147-section-order-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1151-orphan-separators-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1486-collapse-reopens-detail-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-logo-rebrand-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-logo-theme-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-logo-default-sage-teal-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1109-hamburger-dropdown-visible-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-live-layout-1178-1179-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1205-live-controls-anchor-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-live-mql-leak-1180-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1204-live-panel-structure-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1234-live-chrome-pass2-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1206-vcr-overlap-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1244-live-vcr-row-hints-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1510-live-nav-pin-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-live-fullscreen-1572-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1599-replay-freeze-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1648-m1-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1648-m2-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1648-m3-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1648-m4-icons-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1657-analytics-channels-group-sprites-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1224-channels-mobile-ux-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1367-channels-chat-app-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1236-map-mobile-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1329-map-controls-accordion-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1273-qr-overlay-height-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1281-location-row-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1279-legend-p2-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1799-label-vocab-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-home-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-path-inspector-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1206-resize-observer-leak-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-nav-drawer-1064-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-audio-live-1297-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-audio-lab-1297-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-decrypt-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-qr-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-channel-color-picker-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-customize-theme-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-customize-branding-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-customize-display-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-customize-export-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-drag-manager-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1567-corner-clears-drag-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1306-collisions-terminology-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1374-route-map-a11y-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-list-render-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-selection-flow-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-add-modal-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-share-color-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-ws-batch-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-channels-ws-race-1498-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1487-byop-modal-layout-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1630-reach-mobile-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-node-reach-coverage-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 BASE_URL=http://localhost:13581 node tests/e2e/test-issue-1640-compare-discovery-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
CHROMIUM_REQUIRE=1 node tests/e2e/test-neighbor-map-btn-clip-e2e.js 2>&1 | tee -a e2e-output.txt
|
||||
|
||||
# #1616: slide-over focus-restore flake-gate. Runs the slide-over
|
||||
# E2E 20 consecutive times against the SAME backend instance so
|
||||
@@ -594,7 +594,7 @@ jobs:
|
||||
set -e
|
||||
for i in $(seq 1 3); do
|
||||
echo "--- slide-over E2E run $i/20 ---"
|
||||
BASE_URL=http://localhost:13581 node test-slideover-1056-e2e.js 2>&1 | tee -a slideover-repeat-output.txt
|
||||
BASE_URL=http://localhost:13581 node tests/e2e/test-slideover-1056-e2e.js 2>&1 | tee -a slideover-repeat-output.txt
|
||||
done
|
||||
echo "3 passed"
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ Every change must consider performance impact BEFORE implementation. This codeba
|
||||
No proof = no merge.
|
||||
|
||||
### 1. No commit without tests
|
||||
Every change that touches logic MUST have tests. For Go backend: `cd cmd/server && go test ./...` and `cd cmd/ingestor && go test ./...`, or `make test` for all 14 modules. For frontend: `node test-packet-filter.js && node test-aging.js && node test-frontend-helpers.js`. If you add new logic, add tests. No exceptions.
|
||||
Every change that touches logic MUST have tests. For Go backend: `cd cmd/server && go test ./...` and `cd cmd/ingestor && go test ./...`, or `make test` for all 14 modules. For frontend: `node tests/unit/test-packet-filter.js && node tests/unit/test-aging.js && node tests/unit/test-frontend-helpers.js`. If you add new logic, add tests. No exceptions.
|
||||
|
||||
The SQLite driver (`github.com/mattn/go-sqlite3`) is cgo. **`CGO_ENABLED=0` still *builds*** — that is the trap. It links a stub, and the binary dies on the first query with `go-sqlite3 requires cgo to work. This is a stub`, so a green build proves nothing. A plain `GOOS=linux go build` likewise cannot cross-compile it. Use `make build` / `make crossbuild` — the latter needs [`zig`](https://ziglang.org/download/) as the cross C compiler and produces static musl binaries. Never re-add `CGO_ENABLED=0`.
|
||||
|
||||
@@ -202,7 +202,7 @@ All colors MUST use CSS variables. Never hardcode `#hex` values outside of `:roo
|
||||
### Packet Filter (packet-filter.js)
|
||||
Standalone module. No dependencies on app globals (copies what it needs). Testable in Node.js:
|
||||
```bash
|
||||
node test-packet-filter.js
|
||||
node tests/unit/test-packet-filter.js
|
||||
```
|
||||
Uses firmware-standard type names (GRP_TXT, TXT_MSG, REQ) with aliases for convenience.
|
||||
|
||||
@@ -219,8 +219,8 @@ npm run test:full-coverage # backend + instrumented frontend coverage via Playw
|
||||
### Test Files
|
||||
```bash
|
||||
# Backend (deterministic, run before every push)
|
||||
node test-packet-filter.js # filter engine
|
||||
node test-aging.js # node aging system
|
||||
node tests/unit/test-packet-filter.js # filter engine
|
||||
node tests/unit/test-aging.js # node aging system
|
||||
node test-regional-filter.js # regional observer filtering
|
||||
node test-decoder.js # packet decoder
|
||||
node test-decoder-spec.js # spec-driven + golden fixture tests
|
||||
@@ -228,12 +228,12 @@ node test-server-helpers.js # extracted server functions
|
||||
node test-server-routes.js # API route tests via supertest
|
||||
node test-packet-store.js # in-memory packet store
|
||||
node test-db.js # SQLite operations
|
||||
node test-frontend-helpers.js # frontend logic (via vm.createContext)
|
||||
node tests/unit/test-frontend-helpers.js # frontend logic (via vm.createContext)
|
||||
node tools/e2e-test.js # E2E: temp server + synthetic packets
|
||||
node tools/frontend-test.js # frontend smoke: HTML, JS refs, API shapes
|
||||
|
||||
# Frontend E2E (requires running server or Playwright)
|
||||
node test-e2e-playwright.js # 8 Playwright browser tests (default: localhost:3000)
|
||||
node tests/e2e/test-e2e-playwright.js # 8 Playwright browser tests (default: localhost:3000)
|
||||
```
|
||||
|
||||
### Rules
|
||||
@@ -248,14 +248,14 @@ node test-e2e-playwright.js # 8 Playwright browser tests (default: localho
|
||||
2. Write unit tests for the logic
|
||||
3. Write/update Playwright tests if it's a UI change
|
||||
4. Run `npm test` — all tests must pass
|
||||
5. Run `node test-e2e-playwright.js` against a local server — E2E must pass
|
||||
5. Run `node tests/e2e/test-e2e-playwright.js` against a local server — E2E must pass
|
||||
6. THEN push to master
|
||||
|
||||
### Testing infrastructure
|
||||
- **Backend coverage**: c8 tracks server-side code in-process
|
||||
- **Frontend coverage**: Istanbul instruments `public/*.js` → Playwright exercises them → `window.__coverage__` extracted → nyc reports. Instrumented files are generated fresh each CI run, never checked in.
|
||||
- **CI pipeline**: backend tests + coverage → instrument frontend → start local server → Playwright E2E + coverage collection → badges update → deploy (only if all pass)
|
||||
- **Playwright tests default to localhost:3000** — NEVER run against prod. CI sets `BASE_URL=http://localhost:13581`. Running locally: start your server, then `node test-e2e-playwright.js`
|
||||
- **Playwright tests default to localhost:3000** — NEVER run against prod. CI sets `BASE_URL=http://localhost:13581`. Running locally: start your server, then `node tests/e2e/test-e2e-playwright.js`
|
||||
- **ARM machines**: Basic Playwright tests work with system chromium (`CHROMIUM_PATH=/usr/bin/chromium-browser`). Heavy coverage collection scripts may crash — use CI for those.
|
||||
|
||||
Tests that need live mesh data can use `https://analyzer.00id.net` — all API endpoints are public, no auth required.
|
||||
@@ -290,7 +290,7 @@ If the same logic exists in two places, it MUST be extracted into a shared funct
|
||||
### Testability
|
||||
- **Write functions that are easy to test.** Pure functions (input → output, no side effects) are ideal. If a function reads from the DOM, the DB, and localStorage, it's untestable without mocking everything.
|
||||
- **Dependency injection enables testing.** Pass the node list, the map reference, the API function as parameters. Tests can substitute fakes.
|
||||
- **Test the real code, not copies.** Don't paste a function into a test file and test the copy. Import/require the actual module. If the module isn't importable (IIFE, browser-only), refactor it so it is — or use `vm.createContext` like `test-frontend-helpers.js` does.
|
||||
- **Test the real code, not copies.** Don't paste a function into a test file and test the copy. Import/require the actual module. If the module isn't importable (IIFE, browser-only), refactor it so it is — or use `vm.createContext` like `tests/unit/test-frontend-helpers.js` does.
|
||||
- **Every bug fix gets a regression test.** If it broke once, it'll break again. The test proves it stays fixed.
|
||||
|
||||
### Type Safety (without TypeScript)
|
||||
@@ -372,7 +372,7 @@ One logical change per commit. Each commit is deployable. Each commit has its te
|
||||
| Subagent timed out mid-work | 4 | Give clear scope, don't try to run slow pipelines locally |
|
||||
|
||||
## File Naming
|
||||
- Tests: `test-{feature}.js` in repo root
|
||||
- Tests: `test-{feature}.js` in `tests/unit/` (standalone, listed in `test-all.sh`) or `tests/e2e/` (browser, listed in `scripts/non-unit-tests.json`) — never in repo root
|
||||
- No build step, no transpilation — write ES2020 for server, ES5/6 for frontend (broad browser support)
|
||||
|
||||
### Deep Linking
|
||||
|
||||
@@ -228,7 +228,8 @@ corescope/
|
||||
│ └── entrypoint-go.sh # Container entrypoint
|
||||
├── Dockerfile # Multi-stage Go build + Alpine runtime
|
||||
├── config.example.json # Example configuration
|
||||
├── test-*.js # Node.js test suite (frontend + legacy)
|
||||
├── tests/ # Node.js test suite: unit/ (test-all.sh) and e2e/ (Playwright)
|
||||
├── test-all.sh # Runs every suite in tests/unit
|
||||
└── tools/ # Generators, E2E tests, utilities
|
||||
```
|
||||
|
||||
@@ -266,7 +267,7 @@ make test
|
||||
npm test
|
||||
|
||||
# Playwright E2E (requires running server on localhost:3000)
|
||||
node test-e2e-playwright.js
|
||||
node tests/e2e/test-e2e-playwright.js
|
||||
```
|
||||
|
||||
### Generate Test Data
|
||||
|
||||
@@ -55,7 +55,7 @@ If the fix touches ANY frontend file (`public/*.js`, `public/*.css`, or HTML) AN
|
||||
as a user-visible UX behavior (click/hover/navigation/rendering), the PR MUST include a
|
||||
browser-level assertion that would have caught the original bug — NOT only unit tests.
|
||||
|
||||
- Look for an existing E2E harness first (e.g. `test-e2e-playwright.js`, `e2e/`, `tests/e2e/`,
|
||||
- Look for an existing E2E harness first (e.g. `tests/e2e/test-e2e-playwright.js`, `e2e/`, `tests/e2e/`,
|
||||
`playwright.config.*`, or whatever the repo uses). Add the assertion there.
|
||||
- If no E2E harness exists, ADD a small one rather than skip. A 30-line Playwright fixture
|
||||
hitting a public staging URL is acceptable.
|
||||
|
||||
@@ -13,13 +13,17 @@ Windows, use Git Bash and ensure `python3` resolves to Python 3 rather than a
|
||||
Microsoft Store alias; set `PYTHONUTF8=1` for the gate's Unicode output.
|
||||
No server or browser is started by this runner.
|
||||
|
||||
When adding a root `test-*.js` file:
|
||||
Tests live in `tests/unit/` (standalone Node, run by `test-all.sh`) and
|
||||
`tests/e2e/` (needs a browser, a server or extra tooling). They run from the
|
||||
repo root, and refer to it as `REPO_ROOT`. When adding a `test-*.js` file:
|
||||
|
||||
1. Add its `node test-name.js` command to `test-all.sh` if it runs standalone.
|
||||
2. Otherwise add it to `scripts/non-unit-tests.json`, with a prerequisite or
|
||||
1. If it runs standalone, put it in `tests/unit/` and add its
|
||||
`node tests/unit/test-name.js` command to `test-all.sh`.
|
||||
2. Otherwise put it in `tests/e2e/` and add it to `scripts/non-unit-tests.json`, with a prerequisite or
|
||||
reason explaining why it belongs outside the unit runner. Browser suites
|
||||
still need explicit selection in the E2E workflow to become CI gates.
|
||||
3. Run `node test-test-inventory.js`. The guard rejects unclassified files,
|
||||
3. Run `node tests/unit/test-test-inventory.js`. The guard rejects `test-*.js`
|
||||
files in the repo root, unclassified files,
|
||||
duplicate assignments, removed files left in a list, undocumented groups,
|
||||
and local/CI entry points that bypass the unit runner.
|
||||
|
||||
|
||||
+113
-113
@@ -2,129 +2,129 @@
|
||||
"browser": {
|
||||
"reason": "Requires Playwright and Chromium; most suites also require a running local fixture server via BASE_URL. Existing E2E workflow steps retain their separate setup and selection. Never point these tests at production.",
|
||||
"files": [
|
||||
"test-1110-live-filter.js",
|
||||
"test-a11y-axe-1668.js",
|
||||
"test-analytics-fluid-charts.js",
|
||||
"test-audio-lab-1297-e2e.js",
|
||||
"test-audio-live-1297-e2e.js",
|
||||
"test-bottom-nav-1061-e2e.js",
|
||||
"test-channel-color-picker-e2e.js",
|
||||
"test-channel-decrypt-e2e.js",
|
||||
"test-channel-fluid-e2e.js",
|
||||
"test-channel-issue-1087-e2e.js",
|
||||
"test-channel-issue-1111-e2e.js",
|
||||
"test-channel-modal-e2e.js",
|
||||
"test-channel-qr-e2e.js",
|
||||
"test-channels-add-modal-e2e.js",
|
||||
"test-channels-list-render-e2e.js",
|
||||
"test-channels-selection-flow-e2e.js",
|
||||
"test-channels-share-color-e2e.js",
|
||||
"test-channels-ws-batch-e2e.js",
|
||||
"test-channels-ws-race-1498-e2e.js",
|
||||
"test-charts-fluid-1058-e2e.js",
|
||||
"test-customize-branding-e2e.js",
|
||||
"test-customize-display-e2e.js",
|
||||
"test-customize-export-e2e.js",
|
||||
"test-customize-theme-e2e.js",
|
||||
"test-drag-manager-e2e.js",
|
||||
"test-e2e-1267-mobile-vcr.js",
|
||||
"test-e2e-playwright.js",
|
||||
"test-filter-ux-e2e.js",
|
||||
"test-gesture-hints-1065-e2e.js",
|
||||
"test-gestures-1062-e2e.js",
|
||||
"test-gestures-1185-scroll-discriminator-e2e.js",
|
||||
"test-home-coverage-e2e.js",
|
||||
"test-issue-1109-hamburger-dropdown-visible-e2e.js",
|
||||
"test-issue-1122-packets-filter-ux-e2e.js",
|
||||
"test-issue-1128-multi-viewport-e2e.js",
|
||||
"test-issue-1128-packets-layout-e2e.js",
|
||||
"test-issue-1136-live-region-e2e.js",
|
||||
"test-issue-1146-path-link-contrast-e2e.js",
|
||||
"test-issue-1147-section-order-e2e.js",
|
||||
"test-issue-1150-404-state-e2e.js",
|
||||
"test-issue-1151-orphan-separators-e2e.js",
|
||||
"test-issue-1204-live-panel-structure-e2e.js",
|
||||
"test-issue-1205-live-controls-anchor-e2e.js",
|
||||
"test-issue-1206-resize-observer-leak-e2e.js",
|
||||
"test-issue-1206-vcr-overlap-e2e.js",
|
||||
"test-issue-1224-channels-mobile-ux-e2e.js",
|
||||
"test-issue-1234-live-chrome-pass2-e2e.js",
|
||||
"test-issue-1236-map-mobile-e2e.js",
|
||||
"test-issue-1244-live-vcr-row-hints-e2e.js",
|
||||
"test-issue-1273-qr-overlay-height-e2e.js",
|
||||
"test-issue-1274-legend-coverage-e2e.js",
|
||||
"test-issue-1279-legend-p2-e2e.js",
|
||||
"test-issue-1281-location-row-e2e.js",
|
||||
"test-issue-1306-collisions-terminology-e2e.js",
|
||||
"test-issue-1329-map-controls-accordion-e2e.js",
|
||||
"test-issue-1367-channels-chat-app-e2e.js",
|
||||
"test-issue-1374-route-map-a11y-e2e.js",
|
||||
"test-issue-1400-nav-vertical-clip.js",
|
||||
"test-issue-1413-nav-overlap-e2e.js",
|
||||
"test-issue-1486-collapse-reopens-detail-e2e.js",
|
||||
"test-issue-1487-byop-modal-layout-e2e.js",
|
||||
"test-issue-1510-live-nav-pin-e2e.js",
|
||||
"test-issue-1567-corner-clears-drag-e2e.js",
|
||||
"test-issue-1599-replay-freeze-e2e.js",
|
||||
"test-issue-1630-reach-mobile-e2e.js",
|
||||
"test-issue-1639-observers-sort-e2e.js",
|
||||
"test-issue-1640-compare-discovery-e2e.js",
|
||||
"test-issue-1648-m1-icons-e2e.js",
|
||||
"test-issue-1648-m2-icons-e2e.js",
|
||||
"test-issue-1648-m3-icons-e2e.js",
|
||||
"test-issue-1648-m4-icons-e2e.js",
|
||||
"test-issue-1648-m5-icons-e2e.js",
|
||||
"test-issue-1657-analytics-channels-group-sprites-e2e.js",
|
||||
"test-issue-1692-packets-init-parallel-e2e.js",
|
||||
"test-issue-1705-subpath-contrast-e2e.js",
|
||||
"test-issue-1758-ng-filter-rerenders-e2e.js",
|
||||
"test-issue-1799-label-vocab-e2e.js",
|
||||
"test-live-dedup.js",
|
||||
"test-live-fullscreen-1572-e2e.js",
|
||||
"test-live-layout-1178-1179-e2e.js",
|
||||
"test-live-mql-leak-1180-e2e.js",
|
||||
"test-live-multibyte-only-e2e.js",
|
||||
"test-logo-default-sage-teal-e2e.js",
|
||||
"test-logo-pulse-1173-e2e.js",
|
||||
"test-logo-rebrand-e2e.js",
|
||||
"test-logo-theme-e2e.js",
|
||||
"test-map-modal-fluid-e2e.js",
|
||||
"test-map-nodes-pagination-e2e.js",
|
||||
"test-nav-drawer-1064-e2e.js",
|
||||
"test-nav-fluid-1055-e2e.js",
|
||||
"test-nav-more-floor-1139-e2e.js",
|
||||
"test-nav-priority-1102-e2e.js",
|
||||
"test-nav-priority-1311-e2e.js",
|
||||
"test-nav-priority-1391-e2e.js",
|
||||
"test-neighbor-map-btn-clip-e2e.js",
|
||||
"test-node-reach-coverage-e2e.js",
|
||||
"test-node-reach-e2e.js",
|
||||
"test-nodes-export-e2e.js",
|
||||
"test-observer-iata-1188-e2e.js",
|
||||
"test-packets-scope-column.js",
|
||||
"test-path-inspector-coverage-e2e.js",
|
||||
"test-rx-coverage-mobile-nav-e2e.js",
|
||||
"test-show-neighbors.js",
|
||||
"test-slideover-1056-e2e.js",
|
||||
"test-slideover-1168-munger-e2e.js",
|
||||
"test-table-fluid-e2e.js",
|
||||
"test-touch-gestures-coverage-e2e.js",
|
||||
"test-touch-targets.js"
|
||||
"tests/e2e/test-1110-live-filter.js",
|
||||
"tests/e2e/test-a11y-axe-1668.js",
|
||||
"tests/e2e/test-analytics-fluid-charts.js",
|
||||
"tests/e2e/test-audio-lab-1297-e2e.js",
|
||||
"tests/e2e/test-audio-live-1297-e2e.js",
|
||||
"tests/e2e/test-bottom-nav-1061-e2e.js",
|
||||
"tests/e2e/test-channel-color-picker-e2e.js",
|
||||
"tests/e2e/test-channel-decrypt-e2e.js",
|
||||
"tests/e2e/test-channel-fluid-e2e.js",
|
||||
"tests/e2e/test-channel-issue-1087-e2e.js",
|
||||
"tests/e2e/test-channel-issue-1111-e2e.js",
|
||||
"tests/e2e/test-channel-modal-e2e.js",
|
||||
"tests/e2e/test-channel-qr-e2e.js",
|
||||
"tests/e2e/test-channels-add-modal-e2e.js",
|
||||
"tests/e2e/test-channels-list-render-e2e.js",
|
||||
"tests/e2e/test-channels-selection-flow-e2e.js",
|
||||
"tests/e2e/test-channels-share-color-e2e.js",
|
||||
"tests/e2e/test-channels-ws-batch-e2e.js",
|
||||
"tests/e2e/test-channels-ws-race-1498-e2e.js",
|
||||
"tests/e2e/test-charts-fluid-1058-e2e.js",
|
||||
"tests/e2e/test-customize-branding-e2e.js",
|
||||
"tests/e2e/test-customize-display-e2e.js",
|
||||
"tests/e2e/test-customize-export-e2e.js",
|
||||
"tests/e2e/test-customize-theme-e2e.js",
|
||||
"tests/e2e/test-drag-manager-e2e.js",
|
||||
"tests/e2e/test-e2e-1267-mobile-vcr.js",
|
||||
"tests/e2e/test-e2e-playwright.js",
|
||||
"tests/e2e/test-filter-ux-e2e.js",
|
||||
"tests/e2e/test-gesture-hints-1065-e2e.js",
|
||||
"tests/e2e/test-gestures-1062-e2e.js",
|
||||
"tests/e2e/test-gestures-1185-scroll-discriminator-e2e.js",
|
||||
"tests/e2e/test-home-coverage-e2e.js",
|
||||
"tests/e2e/test-issue-1109-hamburger-dropdown-visible-e2e.js",
|
||||
"tests/e2e/test-issue-1122-packets-filter-ux-e2e.js",
|
||||
"tests/e2e/test-issue-1128-multi-viewport-e2e.js",
|
||||
"tests/e2e/test-issue-1128-packets-layout-e2e.js",
|
||||
"tests/e2e/test-issue-1136-live-region-e2e.js",
|
||||
"tests/e2e/test-issue-1146-path-link-contrast-e2e.js",
|
||||
"tests/e2e/test-issue-1147-section-order-e2e.js",
|
||||
"tests/e2e/test-issue-1150-404-state-e2e.js",
|
||||
"tests/e2e/test-issue-1151-orphan-separators-e2e.js",
|
||||
"tests/e2e/test-issue-1204-live-panel-structure-e2e.js",
|
||||
"tests/e2e/test-issue-1205-live-controls-anchor-e2e.js",
|
||||
"tests/e2e/test-issue-1206-resize-observer-leak-e2e.js",
|
||||
"tests/e2e/test-issue-1206-vcr-overlap-e2e.js",
|
||||
"tests/e2e/test-issue-1224-channels-mobile-ux-e2e.js",
|
||||
"tests/e2e/test-issue-1234-live-chrome-pass2-e2e.js",
|
||||
"tests/e2e/test-issue-1236-map-mobile-e2e.js",
|
||||
"tests/e2e/test-issue-1244-live-vcr-row-hints-e2e.js",
|
||||
"tests/e2e/test-issue-1273-qr-overlay-height-e2e.js",
|
||||
"tests/e2e/test-issue-1274-legend-coverage-e2e.js",
|
||||
"tests/e2e/test-issue-1279-legend-p2-e2e.js",
|
||||
"tests/e2e/test-issue-1281-location-row-e2e.js",
|
||||
"tests/e2e/test-issue-1306-collisions-terminology-e2e.js",
|
||||
"tests/e2e/test-issue-1329-map-controls-accordion-e2e.js",
|
||||
"tests/e2e/test-issue-1367-channels-chat-app-e2e.js",
|
||||
"tests/e2e/test-issue-1374-route-map-a11y-e2e.js",
|
||||
"tests/e2e/test-issue-1400-nav-vertical-clip.js",
|
||||
"tests/e2e/test-issue-1413-nav-overlap-e2e.js",
|
||||
"tests/e2e/test-issue-1486-collapse-reopens-detail-e2e.js",
|
||||
"tests/e2e/test-issue-1487-byop-modal-layout-e2e.js",
|
||||
"tests/e2e/test-issue-1510-live-nav-pin-e2e.js",
|
||||
"tests/e2e/test-issue-1567-corner-clears-drag-e2e.js",
|
||||
"tests/e2e/test-issue-1599-replay-freeze-e2e.js",
|
||||
"tests/e2e/test-issue-1630-reach-mobile-e2e.js",
|
||||
"tests/e2e/test-issue-1639-observers-sort-e2e.js",
|
||||
"tests/e2e/test-issue-1640-compare-discovery-e2e.js",
|
||||
"tests/e2e/test-issue-1648-m1-icons-e2e.js",
|
||||
"tests/e2e/test-issue-1648-m2-icons-e2e.js",
|
||||
"tests/e2e/test-issue-1648-m3-icons-e2e.js",
|
||||
"tests/e2e/test-issue-1648-m4-icons-e2e.js",
|
||||
"tests/e2e/test-issue-1648-m5-icons-e2e.js",
|
||||
"tests/e2e/test-issue-1657-analytics-channels-group-sprites-e2e.js",
|
||||
"tests/e2e/test-issue-1692-packets-init-parallel-e2e.js",
|
||||
"tests/e2e/test-issue-1705-subpath-contrast-e2e.js",
|
||||
"tests/e2e/test-issue-1758-ng-filter-rerenders-e2e.js",
|
||||
"tests/e2e/test-issue-1799-label-vocab-e2e.js",
|
||||
"tests/e2e/test-live-dedup.js",
|
||||
"tests/e2e/test-live-fullscreen-1572-e2e.js",
|
||||
"tests/e2e/test-live-layout-1178-1179-e2e.js",
|
||||
"tests/e2e/test-live-mql-leak-1180-e2e.js",
|
||||
"tests/e2e/test-live-multibyte-only-e2e.js",
|
||||
"tests/e2e/test-logo-default-sage-teal-e2e.js",
|
||||
"tests/e2e/test-logo-pulse-1173-e2e.js",
|
||||
"tests/e2e/test-logo-rebrand-e2e.js",
|
||||
"tests/e2e/test-logo-theme-e2e.js",
|
||||
"tests/e2e/test-map-modal-fluid-e2e.js",
|
||||
"tests/e2e/test-map-nodes-pagination-e2e.js",
|
||||
"tests/e2e/test-nav-drawer-1064-e2e.js",
|
||||
"tests/e2e/test-nav-fluid-1055-e2e.js",
|
||||
"tests/e2e/test-nav-more-floor-1139-e2e.js",
|
||||
"tests/e2e/test-nav-priority-1102-e2e.js",
|
||||
"tests/e2e/test-nav-priority-1311-e2e.js",
|
||||
"tests/e2e/test-nav-priority-1391-e2e.js",
|
||||
"tests/e2e/test-neighbor-map-btn-clip-e2e.js",
|
||||
"tests/e2e/test-node-reach-coverage-e2e.js",
|
||||
"tests/e2e/test-node-reach-e2e.js",
|
||||
"tests/e2e/test-nodes-export-e2e.js",
|
||||
"tests/e2e/test-observer-iata-1188-e2e.js",
|
||||
"tests/e2e/test-packets-scope-column.js",
|
||||
"tests/e2e/test-path-inspector-coverage-e2e.js",
|
||||
"tests/e2e/test-rx-coverage-mobile-nav-e2e.js",
|
||||
"tests/e2e/test-show-neighbors.js",
|
||||
"tests/e2e/test-slideover-1056-e2e.js",
|
||||
"tests/e2e/test-slideover-1168-munger-e2e.js",
|
||||
"tests/e2e/test-table-fluid-e2e.js",
|
||||
"tests/e2e/test-touch-gestures-coverage-e2e.js",
|
||||
"tests/e2e/test-touch-targets.js"
|
||||
]
|
||||
},
|
||||
"playwrightRunner": {
|
||||
"reason": "Requires the @playwright/test runner (not plain node), its configuration, Chromium, and a local server. @playwright/test is not currently declared in package.json; these suites are inventoried but not part of the standalone unit gate.",
|
||||
"files": [
|
||||
"test-issue-1522-trace-url-sync-e2e.js",
|
||||
"test-marker-outline-weight.js",
|
||||
"test-path-inspector-e2e.js",
|
||||
"test-pr-1490-live-map-gpu-animations-e2e.js"
|
||||
"tests/e2e/test-issue-1522-trace-url-sync-e2e.js",
|
||||
"tests/e2e/test-marker-outline-weight.js",
|
||||
"tests/e2e/test-path-inspector-e2e.js",
|
||||
"tests/e2e/test-pr-1490-live-map-gpu-animations-e2e.js"
|
||||
]
|
||||
},
|
||||
"domIntegration": {
|
||||
"reason": "Requires jsdom, which is not currently declared in package.json. This DOM integration suite is inventoried separately; no new dependency is installed by the unit gate.",
|
||||
"files": [
|
||||
"test-table-sort.js"
|
||||
"tests/e2e/test-table-sort.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
+179
-178
@@ -1,185 +1,186 @@
|
||||
#!/bin/sh
|
||||
# Authoritative standalone frontend test list for local runs and CI.
|
||||
# Every root test is listed here or classified in scripts/non-unit-tests.json.
|
||||
# Every suite in tests/unit is listed here; every suite in tests/e2e is classified
|
||||
# in scripts/non-unit-tests.json.
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
node test-test-inventory.js
|
||||
node test-1108-region-hide-nodes.js
|
||||
node test-1659-analytics-warmup.js
|
||||
node test-a11y-1705-subpath-hop-prefix-e2e.js
|
||||
node test-a11y-1715-dark-role-swatches.js
|
||||
node test-a11y-1716-rf-range-btn-active.js
|
||||
node test-a11y-1719-contrast-root-causes-e2e.js
|
||||
node test-a11y-axe-1668-selftest.js
|
||||
node test-a11y-axe-routes-coverage.js
|
||||
node test-aging.js
|
||||
node test-analytics-channels-integration.js
|
||||
node test-anl1-tooltip-render.js
|
||||
node test-area-filter.js
|
||||
node test-channel-color-picker.js
|
||||
node test-channel-colors.js
|
||||
node test-channel-decrypt-ecb.js
|
||||
node test-channel-decrypt-insecure-context.js
|
||||
node test-channel-decrypt-m345.js
|
||||
node test-channel-fluid-layout.js
|
||||
node test-channel-issue-1087.js
|
||||
node test-channel-issue-1101.js
|
||||
node test-channel-live-decrypt-userprefix.js
|
||||
node test-channel-live-decrypt.js
|
||||
node test-channel-modal-ux.js
|
||||
node test-channel-psk-ux.js
|
||||
node test-channel-qr-wiring.js
|
||||
node test-channel-qr.js
|
||||
node test-channel-sidebar-layout.js
|
||||
node test-channel-ux-followup.js
|
||||
node test-channel-ux-round2.js
|
||||
node test-channels-merge-1498-unit.js
|
||||
node test-clear-filters.js
|
||||
node test-color-picker-ux.js
|
||||
node test-compare-flood-filter.js
|
||||
node test-compare-overlap.js
|
||||
node test-confidence-indicator.js
|
||||
node test-coverage-gate.js
|
||||
node test-customizer-v2.js
|
||||
node test-drag-manager.js
|
||||
node test-embed-mode-1369.js
|
||||
node test-fetch-all-nodes-pagination.js
|
||||
node test-fluid-scaffolding.js
|
||||
node test-frontend-helpers.js
|
||||
node test-geofilter-draft.js
|
||||
node test-hash-color.js
|
||||
node test-hop-resolver-affinity.js
|
||||
node test-issue-1065-gesture-hints-gates.js
|
||||
node test-issue-1107-live-layout.js
|
||||
node test-issue-1136-observer-iata-map.js
|
||||
node test-issue-1166-first-seen-column.js
|
||||
node test-issue-1189-composed-cell.js
|
||||
node test-issue-1189-live-iata-badge.js
|
||||
node test-issue-1279-p2-code-filter.js
|
||||
node test-issue-1293-marker-shapes.js
|
||||
node test-issue-1356-map-a11y.js
|
||||
node test-issue-1360-pill-letter-count.js
|
||||
node test-issue-1361-cb-presets.js
|
||||
node test-issue-1364-pill-no-clamp.js
|
||||
node test-issue-1375-scope-stats-fetch.js
|
||||
node test-issue-1380-cb-reset-button.js
|
||||
node test-issue-1380-cb-sim-overlay.js
|
||||
node test-issue-1407-cb-preset-propagation.js
|
||||
node test-issue-1409-no-encrypted-flood.js
|
||||
node test-issue-1412-customizer-no-override.js
|
||||
node test-issue-1415-packets-layout.js
|
||||
node test-issue-1418-cb-preset-ramp.js
|
||||
node test-issue-1418-deeplink-hops-channels.js
|
||||
node test-issue-1418-edge-weights.js
|
||||
node test-issue-1418-polish-review.js
|
||||
node test-issue-1418-raw-hex-extraction.js
|
||||
node test-issue-1418-spider-fan.js
|
||||
node test-issue-1420-tile-providers.js
|
||||
node test-issue-1438-customizer-mcrole.js
|
||||
node test-issue-1438-marker-css-vars.js
|
||||
node test-issue-1446-cb-preset-cascade.js
|
||||
node test-issue-1450-logo-aspect.js
|
||||
node test-issue-1454-channels-toggle.js
|
||||
node test-issue-1456-score-labels.js
|
||||
node test-issue-1461-mobile-page-actions.js
|
||||
node test-issue-1470-card-bg-contrast.js
|
||||
node test-issue-1470-node-tile-helper.js
|
||||
node test-issue-1473-prefix-generator.js
|
||||
node test-issue-1473-reserved-prefixes.js
|
||||
node test-issue-1485-live-anim-z.js
|
||||
node test-issue-1488-marker-stroke-vars.js
|
||||
node test-issue-1496-reset-all-complete.js
|
||||
node test-issue-1509-detect-preset.js
|
||||
node test-issue-1509-nav-active-bg.js
|
||||
node test-issue-1518-home-url.js
|
||||
node test-issue-1532-live-fullscreen.js
|
||||
node test-issue-1562-observers-summary.js
|
||||
node test-issue-1563-aggregate-and-inflight.js
|
||||
node test-issue-1574-live-map-max-nodes.js
|
||||
node test-issue-1606-pagination.js
|
||||
node test-issue-1614-tile-url-function.js
|
||||
node test-issue-1619-feed-detail-card-draggable.js
|
||||
node test-issue-1633-hide-1byte-hops.js
|
||||
node test-issue-1644-redesign.js
|
||||
node test-issue-1646-compare-polish.js
|
||||
node test-issue-1648-followup-phosphor-leaks.js
|
||||
node test-issue-1648-m1-emoji-scan.js
|
||||
node test-issue-1648-m2-emoji-scan.js
|
||||
node test-issue-1648-m3-emoji-scan.js
|
||||
node test-issue-1648-m4-emoji-scan.js
|
||||
node test-issue-1648-m5-emoji-scan.js
|
||||
node test-issue-1648-m6-final-sweep.js
|
||||
node test-issue-1648-m6-lint-self.js
|
||||
node test-issue-1668-m2-contrast.js
|
||||
node test-issue-1668-m3-typography.js
|
||||
node test-issue-1668-m4-per-route.js
|
||||
node test-issue-1697-mqtt-mobile-e2e.js
|
||||
node test-issue-1699-retransmission-chart.js
|
||||
node test-issue-1705-subpath-contrast.js
|
||||
node test-issue-1753-copy-url-slash.js
|
||||
node test-issue-1770-mobile-row-clamp.js
|
||||
node test-issue-1789-observer-firmware-cols.js
|
||||
node test-issue-1825-observer-node-cross-links.js
|
||||
node test-issue-1833-legend-toggle-vcr-offset.js
|
||||
node test-issue-1836-crossnav-case-normalization.js
|
||||
node test-issue-1843-node-qr-quiet-zone.js
|
||||
node test-issue-1846-observers-width.js
|
||||
node test-issue-1849-trace-hashbytes.js
|
||||
node test-issue-1851-channel-message-scope.js
|
||||
node test-issue-1862-map-region-filter.js
|
||||
node test-issue-1868-control-decode.js
|
||||
node test-issue-1890-og-url.js
|
||||
node test-issue-1956-release-routing.js
|
||||
node test-issue-1979-scope-adverts-by-role.js
|
||||
node test-issue-2001-map-scope-state.js
|
||||
node test-issue-2012-clear-filters-selection.js
|
||||
node test-live-anims.js
|
||||
node test-live-dt-cap-1524.js
|
||||
node test-live-legend-helper.js
|
||||
node test-live-multibyte-filter.js
|
||||
node test-live-region-filter.js
|
||||
node test-live.js
|
||||
node test-map-clustering.js
|
||||
node test-mqtt-status-panel.js
|
||||
node test-my-repeaters-dashboard.js
|
||||
node test-naive-banner-tone.js
|
||||
node test-node-hop-analytics.js
|
||||
node test-node-reach-coverage-debounce.js
|
||||
node test-node-reach-coverage.js
|
||||
node test-nodes-export-wiring.js
|
||||
node test-nodes-export.js
|
||||
node test-observer-iata-1188.js
|
||||
node test-observer-menu-interactions.js
|
||||
node test-observer-naive-clock-1478.js
|
||||
node test-observer-search-filter.js
|
||||
node test-observers-headings.js
|
||||
node test-packet-filter-time.js
|
||||
node test-packet-filter-ux.js
|
||||
node test-packet-filter.js
|
||||
node test-packets-local-channels.js
|
||||
node test-packets.js
|
||||
node test-panel-corner.js
|
||||
node test-path-inspector.js
|
||||
node test-payload-labels-content.js
|
||||
node test-payload-labels-namespace.js
|
||||
node test-perf-anomaly.js
|
||||
node test-perf-disk-io-1120.js
|
||||
node test-perf-go-runtime.js
|
||||
node test-perf-render-1258.js
|
||||
node test-preflight-xss-gate.js
|
||||
node test-pull-to-reconnect-1091.js
|
||||
node test-pull-to-reconnect.js
|
||||
node test-repeater-metric-scatter.js
|
||||
node test-rx-coverage-config-race.js
|
||||
node test-rx-coverage-escape.js
|
||||
node test-scope-audit-styles-linked.js
|
||||
node test-slideover-1056-rowsel-strict.js
|
||||
node test-top-routes-overlay.js
|
||||
node test-traces.js
|
||||
node test-url-state.js
|
||||
node test-warmup-banner.js
|
||||
node test-ws-stale-watchdog-1074.js
|
||||
node test-xss-escape-sinks.js
|
||||
node tests/unit/test-test-inventory.js
|
||||
node tests/unit/test-1108-region-hide-nodes.js
|
||||
node tests/unit/test-1659-analytics-warmup.js
|
||||
node tests/unit/test-a11y-1705-subpath-hop-prefix-e2e.js
|
||||
node tests/unit/test-a11y-1715-dark-role-swatches.js
|
||||
node tests/unit/test-a11y-1716-rf-range-btn-active.js
|
||||
node tests/unit/test-a11y-1719-contrast-root-causes-e2e.js
|
||||
node tests/unit/test-a11y-axe-1668-selftest.js
|
||||
node tests/unit/test-a11y-axe-routes-coverage.js
|
||||
node tests/unit/test-aging.js
|
||||
node tests/unit/test-analytics-channels-integration.js
|
||||
node tests/unit/test-anl1-tooltip-render.js
|
||||
node tests/unit/test-area-filter.js
|
||||
node tests/unit/test-channel-color-picker.js
|
||||
node tests/unit/test-channel-colors.js
|
||||
node tests/unit/test-channel-decrypt-ecb.js
|
||||
node tests/unit/test-channel-decrypt-insecure-context.js
|
||||
node tests/unit/test-channel-decrypt-m345.js
|
||||
node tests/unit/test-channel-fluid-layout.js
|
||||
node tests/unit/test-channel-issue-1087.js
|
||||
node tests/unit/test-channel-issue-1101.js
|
||||
node tests/unit/test-channel-live-decrypt-userprefix.js
|
||||
node tests/unit/test-channel-live-decrypt.js
|
||||
node tests/unit/test-channel-modal-ux.js
|
||||
node tests/unit/test-channel-psk-ux.js
|
||||
node tests/unit/test-channel-qr-wiring.js
|
||||
node tests/unit/test-channel-qr.js
|
||||
node tests/unit/test-channel-sidebar-layout.js
|
||||
node tests/unit/test-channel-ux-followup.js
|
||||
node tests/unit/test-channel-ux-round2.js
|
||||
node tests/unit/test-channels-merge-1498-unit.js
|
||||
node tests/unit/test-clear-filters.js
|
||||
node tests/unit/test-color-picker-ux.js
|
||||
node tests/unit/test-compare-flood-filter.js
|
||||
node tests/unit/test-compare-overlap.js
|
||||
node tests/unit/test-confidence-indicator.js
|
||||
node tests/unit/test-coverage-gate.js
|
||||
node tests/unit/test-customizer-v2.js
|
||||
node tests/unit/test-drag-manager.js
|
||||
node tests/unit/test-embed-mode-1369.js
|
||||
node tests/unit/test-fetch-all-nodes-pagination.js
|
||||
node tests/unit/test-fluid-scaffolding.js
|
||||
node tests/unit/test-frontend-helpers.js
|
||||
node tests/unit/test-geofilter-draft.js
|
||||
node tests/unit/test-hash-color.js
|
||||
node tests/unit/test-hop-resolver-affinity.js
|
||||
node tests/unit/test-issue-1065-gesture-hints-gates.js
|
||||
node tests/unit/test-issue-1107-live-layout.js
|
||||
node tests/unit/test-issue-1136-observer-iata-map.js
|
||||
node tests/unit/test-issue-1166-first-seen-column.js
|
||||
node tests/unit/test-issue-1189-composed-cell.js
|
||||
node tests/unit/test-issue-1189-live-iata-badge.js
|
||||
node tests/unit/test-issue-1279-p2-code-filter.js
|
||||
node tests/unit/test-issue-1293-marker-shapes.js
|
||||
node tests/unit/test-issue-1356-map-a11y.js
|
||||
node tests/unit/test-issue-1360-pill-letter-count.js
|
||||
node tests/unit/test-issue-1361-cb-presets.js
|
||||
node tests/unit/test-issue-1364-pill-no-clamp.js
|
||||
node tests/unit/test-issue-1375-scope-stats-fetch.js
|
||||
node tests/unit/test-issue-1380-cb-reset-button.js
|
||||
node tests/unit/test-issue-1380-cb-sim-overlay.js
|
||||
node tests/unit/test-issue-1407-cb-preset-propagation.js
|
||||
node tests/unit/test-issue-1409-no-encrypted-flood.js
|
||||
node tests/unit/test-issue-1412-customizer-no-override.js
|
||||
node tests/unit/test-issue-1415-packets-layout.js
|
||||
node tests/unit/test-issue-1418-cb-preset-ramp.js
|
||||
node tests/unit/test-issue-1418-deeplink-hops-channels.js
|
||||
node tests/unit/test-issue-1418-edge-weights.js
|
||||
node tests/unit/test-issue-1418-polish-review.js
|
||||
node tests/unit/test-issue-1418-raw-hex-extraction.js
|
||||
node tests/unit/test-issue-1418-spider-fan.js
|
||||
node tests/unit/test-issue-1420-tile-providers.js
|
||||
node tests/unit/test-issue-1438-customizer-mcrole.js
|
||||
node tests/unit/test-issue-1438-marker-css-vars.js
|
||||
node tests/unit/test-issue-1446-cb-preset-cascade.js
|
||||
node tests/unit/test-issue-1450-logo-aspect.js
|
||||
node tests/unit/test-issue-1454-channels-toggle.js
|
||||
node tests/unit/test-issue-1456-score-labels.js
|
||||
node tests/unit/test-issue-1461-mobile-page-actions.js
|
||||
node tests/unit/test-issue-1470-card-bg-contrast.js
|
||||
node tests/unit/test-issue-1470-node-tile-helper.js
|
||||
node tests/unit/test-issue-1473-prefix-generator.js
|
||||
node tests/unit/test-issue-1473-reserved-prefixes.js
|
||||
node tests/unit/test-issue-1485-live-anim-z.js
|
||||
node tests/unit/test-issue-1488-marker-stroke-vars.js
|
||||
node tests/unit/test-issue-1496-reset-all-complete.js
|
||||
node tests/unit/test-issue-1509-detect-preset.js
|
||||
node tests/unit/test-issue-1509-nav-active-bg.js
|
||||
node tests/unit/test-issue-1518-home-url.js
|
||||
node tests/unit/test-issue-1532-live-fullscreen.js
|
||||
node tests/unit/test-issue-1562-observers-summary.js
|
||||
node tests/unit/test-issue-1563-aggregate-and-inflight.js
|
||||
node tests/unit/test-issue-1574-live-map-max-nodes.js
|
||||
node tests/unit/test-issue-1606-pagination.js
|
||||
node tests/unit/test-issue-1614-tile-url-function.js
|
||||
node tests/unit/test-issue-1619-feed-detail-card-draggable.js
|
||||
node tests/unit/test-issue-1633-hide-1byte-hops.js
|
||||
node tests/unit/test-issue-1644-redesign.js
|
||||
node tests/unit/test-issue-1646-compare-polish.js
|
||||
node tests/unit/test-issue-1648-followup-phosphor-leaks.js
|
||||
node tests/unit/test-issue-1648-m1-emoji-scan.js
|
||||
node tests/unit/test-issue-1648-m2-emoji-scan.js
|
||||
node tests/unit/test-issue-1648-m3-emoji-scan.js
|
||||
node tests/unit/test-issue-1648-m4-emoji-scan.js
|
||||
node tests/unit/test-issue-1648-m5-emoji-scan.js
|
||||
node tests/unit/test-issue-1648-m6-final-sweep.js
|
||||
node tests/unit/test-issue-1648-m6-lint-self.js
|
||||
node tests/unit/test-issue-1668-m2-contrast.js
|
||||
node tests/unit/test-issue-1668-m3-typography.js
|
||||
node tests/unit/test-issue-1668-m4-per-route.js
|
||||
node tests/unit/test-issue-1697-mqtt-mobile-e2e.js
|
||||
node tests/unit/test-issue-1699-retransmission-chart.js
|
||||
node tests/unit/test-issue-1705-subpath-contrast.js
|
||||
node tests/unit/test-issue-1753-copy-url-slash.js
|
||||
node tests/unit/test-issue-1770-mobile-row-clamp.js
|
||||
node tests/unit/test-issue-1789-observer-firmware-cols.js
|
||||
node tests/unit/test-issue-1825-observer-node-cross-links.js
|
||||
node tests/unit/test-issue-1833-legend-toggle-vcr-offset.js
|
||||
node tests/unit/test-issue-1836-crossnav-case-normalization.js
|
||||
node tests/unit/test-issue-1843-node-qr-quiet-zone.js
|
||||
node tests/unit/test-issue-1846-observers-width.js
|
||||
node tests/unit/test-issue-1849-trace-hashbytes.js
|
||||
node tests/unit/test-issue-1851-channel-message-scope.js
|
||||
node tests/unit/test-issue-1862-map-region-filter.js
|
||||
node tests/unit/test-issue-1868-control-decode.js
|
||||
node tests/unit/test-issue-1890-og-url.js
|
||||
node tests/unit/test-issue-1956-release-routing.js
|
||||
node tests/unit/test-issue-1979-scope-adverts-by-role.js
|
||||
node tests/unit/test-issue-2001-map-scope-state.js
|
||||
node tests/unit/test-issue-2012-clear-filters-selection.js
|
||||
node tests/unit/test-live-anims.js
|
||||
node tests/unit/test-live-dt-cap-1524.js
|
||||
node tests/unit/test-live-legend-helper.js
|
||||
node tests/unit/test-live-multibyte-filter.js
|
||||
node tests/unit/test-live-region-filter.js
|
||||
node tests/unit/test-live.js
|
||||
node tests/unit/test-map-clustering.js
|
||||
node tests/unit/test-mqtt-status-panel.js
|
||||
node tests/unit/test-my-repeaters-dashboard.js
|
||||
node tests/unit/test-naive-banner-tone.js
|
||||
node tests/unit/test-node-hop-analytics.js
|
||||
node tests/unit/test-node-reach-coverage-debounce.js
|
||||
node tests/unit/test-node-reach-coverage.js
|
||||
node tests/unit/test-nodes-export-wiring.js
|
||||
node tests/unit/test-nodes-export.js
|
||||
node tests/unit/test-observer-iata-1188.js
|
||||
node tests/unit/test-observer-menu-interactions.js
|
||||
node tests/unit/test-observer-naive-clock-1478.js
|
||||
node tests/unit/test-observer-search-filter.js
|
||||
node tests/unit/test-observers-headings.js
|
||||
node tests/unit/test-packet-filter-time.js
|
||||
node tests/unit/test-packet-filter-ux.js
|
||||
node tests/unit/test-packet-filter.js
|
||||
node tests/unit/test-packets-local-channels.js
|
||||
node tests/unit/test-packets.js
|
||||
node tests/unit/test-panel-corner.js
|
||||
node tests/unit/test-path-inspector.js
|
||||
node tests/unit/test-payload-labels-content.js
|
||||
node tests/unit/test-payload-labels-namespace.js
|
||||
node tests/unit/test-perf-anomaly.js
|
||||
node tests/unit/test-perf-disk-io-1120.js
|
||||
node tests/unit/test-perf-go-runtime.js
|
||||
node tests/unit/test-perf-render-1258.js
|
||||
node tests/unit/test-preflight-xss-gate.js
|
||||
node tests/unit/test-pull-to-reconnect-1091.js
|
||||
node tests/unit/test-pull-to-reconnect.js
|
||||
node tests/unit/test-repeater-metric-scatter.js
|
||||
node tests/unit/test-rx-coverage-config-race.js
|
||||
node tests/unit/test-rx-coverage-escape.js
|
||||
node tests/unit/test-scope-audit-styles-linked.js
|
||||
node tests/unit/test-slideover-1056-rowsel-strict.js
|
||||
node tests/unit/test-top-routes-overlay.js
|
||||
node tests/unit/test-traces.js
|
||||
node tests/unit/test-url-state.js
|
||||
node tests/unit/test-warmup-banner.js
|
||||
node tests/unit/test-ws-stale-watchdog-1074.js
|
||||
node tests/unit/test-xss-escape-sinks.js
|
||||
|
||||
echo "All standalone frontend suites passed"
|
||||
File renamed without changes.
@@ -31,6 +31,7 @@
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
const REPO_ROOT = require('path').resolve(__dirname, '..', '..');
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
@@ -41,7 +42,7 @@ const path = require('path');
|
||||
const BASE = process.env.BASE_URL || 'http://localhost:13581';
|
||||
const ROUTES_FILTER = (process.env.AXE_ROUTES_ONLY || '').split(',').filter(Boolean);
|
||||
const SHOT_DIR = process.env.AXE_SCREENSHOT_DIR || '/tmp/axe-1668';
|
||||
const ALLOWLIST_PATH = path.join(__dirname, 'tests', 'a11y-allowlist.yaml');
|
||||
const ALLOWLIST_PATH = path.join(REPO_ROOT, 'tests', 'a11y-allowlist.yaml');
|
||||
|
||||
// Routes: M1 audit baseline (already proven coverage).
|
||||
// Hash routes — CoreScope is a SPA, server returns the same shell for any path.
|
||||
@@ -19,12 +19,13 @@
|
||||
* Usage: node test-analytics-fluid-charts.js
|
||||
*/
|
||||
'use strict';
|
||||
const REPO_ROOT = require('path').resolve(__dirname, '..', '..');
|
||||
const { chromium } = require('playwright');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const os = require('os');
|
||||
|
||||
const CSS_PATH = path.join(__dirname, 'public', 'style.css');
|
||||
const CSS_PATH = path.join(REPO_ROOT, 'public', 'style.css');
|
||||
const cssHref = 'file://' + CSS_PATH;
|
||||
|
||||
// Minimal harness: a sized wrapper that defines the available width
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,4 @@
|
||||
const REPO_ROOT = require('path').resolve(__dirname, '..', '..');
|
||||
/**
|
||||
* Playwright E2E tests — proof of concept
|
||||
* Runs against prod (analyzer.00id.net), read-only.
|
||||
@@ -2313,7 +2314,7 @@ async function run() {
|
||||
if (coverage) {
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const outDir = path.join(__dirname, '.nyc_output');
|
||||
const outDir = path.join(REPO_ROOT, '.nyc_output');
|
||||
if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
|
||||
fs.writeFileSync(path.join(outDir, 'e2e-coverage.json'), JSON.stringify(coverage));
|
||||
console.log(`Frontend coverage from E2E: ${Object.keys(coverage).length} files`);
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
-1
@@ -30,12 +30,13 @@
|
||||
* to convert SKIP -> FAIL.
|
||||
*/
|
||||
'use strict';
|
||||
const REPO_ROOT = require('path').resolve(__dirname, '..', '..');
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { chromium } = require('playwright');
|
||||
|
||||
const CSS_PATH = path.resolve(__dirname, 'public', 'style.css');
|
||||
const CSS_PATH = path.resolve(REPO_ROOT, 'public', 'style.css');
|
||||
|
||||
function fail(msg) {
|
||||
console.error(`test-issue-1705-subpath-contrast-e2e.js: FAIL — ${msg}`);
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 300 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user