mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-06-04 09:51:19 +00:00
ddf14d1954
## Summary Reframes the CB-preset feature as an **end-user opt-in** layered above operator config — not the canonical color source for the app. Implements the cascade defined in #1446's acceptance test and fixes the #1444 cascade trap as a side effect. **Cascade (top wins):** ``` user per-role override > active CB preset > server config.nodeColors > built-in :root defaults ``` Red commit:f59c0c5e(8 scenarios, 9 assertions red on master) Green commit:21f9b80c(all 16 assertions pass; reverting any one of the four source files brings the test back red). ## Changes | File | What | |---|---| | `cb-presets.js` | `currentPreset()` returns `null` on no-stored-preset (was `'default'`). `initFromStorage()` no longer auto-applies Wong cold. New `clearPreset()` API. | | `style.css` | Drop the `body[data-cb-preset="default"]` block. Wong remains `:root` baseline; that block was masking server config in the "no preset" state. | | `roles.js` | `setRoleColorOverride` writes to `body.style` with `!important` so user picks win on equal-specificity cascade against `body[data-cb-preset="X"]` (root cause of #1444). | | `customize-v2.js` | `applyCSS`: when no preset active, server-config nodeColors get `--mc-role-{role}` too. UI re-ordered (Node Role Colors first, preset section labelled "Optional"). Wires `cb-preset-changed` listener so `clearPreset()` re-applies server config live. | ## Backward compat - Visitors with a stored CB preset in localStorage continue to see it on load. - Visitors without one: now see operator's `config.json` colors (or built-in Wong if config has no `nodeColors`). Visually identical for default deploys. ## Acceptance scenarios (verified in `test-issue-1446-cb-preset-cascade.js`) 1. Cold boot, no localStorage → no `data-cb-preset` attr, no `--mc-role-*` clamp 2. Server `nodeColors.repeater = #aaaaaa`, no preset → `--mc-role-repeater = #aaaaaa` 3. User picks `#ff00ff` while `deut` active → body inline `!important` wins 4. Clear override while `deut` active → reverts to `#FE6100` (deut) 5. Clear preset (server config present) → reverts to server config 6. Stored preset auto-applies on boot (backward compat) 7. Customizer UI: Node Role Colors block precedes preset block 8. `style.css`: no body data-cb-preset rule re-defines Wong (would mask server) Post-merge CDP verification on staging will run the 5 issue-acceptance scenarios. Closes #1446 Fixes #1444 (cascade) E2E assertion added: `test-issue-1446-cb-preset-cascade.js:124` (scenario 3 — user override beats active preset on body inline with !important). Browser verified: pending hot-deploy + CDP run post-merge (per task brief). --------- Co-authored-by: openclaw-bot <bot@openclaw.local>
48 lines
1.7 KiB
Bash
Executable File
48 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# Run all tests with coverage
|
|
set -e
|
|
|
|
echo "═══════════════════════════════════════"
|
|
echo " CoreScope — Test Suite"
|
|
echo "═══════════════════════════════════════"
|
|
echo ""
|
|
|
|
# Unit tests (deterministic, fast)
|
|
echo "── Unit Tests ──"
|
|
node test-packet-filter.js
|
|
node test-packet-filter-ux.js
|
|
node test-aging.js
|
|
node test-frontend-helpers.js
|
|
node test-url-state.js
|
|
node test-perf-go-runtime.js
|
|
node test-channel-psk-ux.js
|
|
node test-channel-sidebar-layout.js
|
|
node test-channel-fluid-layout.js
|
|
node test-channel-modal-ux.js
|
|
node test-channel-decrypt-insecure-context.js
|
|
node test-channel-qr.js
|
|
node test-channel-qr-wiring.js
|
|
node test-channel-issue-1087.js
|
|
node test-issue-1409-no-encrypted-flood.js
|
|
node test-analytics-channels-integration.js
|
|
node test-observers-headings.js
|
|
node test-marker-outline-weight.js
|
|
node test-traces.js
|
|
|
|
# #1418 — route-view v2 (Tufte) coverage
|
|
node test-issue-1418-raw-hex-extraction.js
|
|
node test-issue-1418-edge-weights.js
|
|
node test-issue-1418-cb-preset-ramp.js
|
|
node test-issue-1418-spider-fan.js
|
|
node test-issue-1418-deeplink-hops-channels.js
|
|
node test-issue-1418-polish-review.js
|
|
node test-issue-1420-tile-providers.js
|
|
node test-issue-1438-marker-css-vars.js
|
|
node test-issue-1438-customizer-mcrole.js
|
|
node test-issue-1446-cb-preset-cascade.js
|
|
|
|
echo ""
|
|
echo "═══════════════════════════════════════"
|
|
echo " All tests passed"
|
|
echo "═══════════════════════════════════════"
|