Put share verification back in the browser suite
Some checks are pending
build-gate / build (push) Waiting to run
Some checks are pending
build-gate / build (push) Waiting to run
I excluded smoke:share from the aggregate two ticks ago and the reason was wrong. Every clause of it was true — the script takes required arguments, and its gallery mode does need the vite dev server — but the conclusion did not follow. I had tried exactly two invocations, bare and --plugin-gallery, and never --url, which the script's own header documents first. It runs fine against the static tree: 8 of 8 pass, each Share button reopening the correct custom element with a live canvas. That is the same shape I logged as an anti-pattern last tick, now found in my own work: a not-applicable verdict is more durable than a wrong bug report, because it closes the question. It cost the suite its highest-consequence surface for two ticks. A share URL is the one artefact a partner pastes into an email, and it fails silently. It runs as smoke:share-all, carrying its own eight --url flags and --browser chromium, since Firefox headless has no WebGL on this box and the default engine stops. The eight leaves are the set derived by grepping for ShareButton, not a guess. The simple-map case is the discriminating one: it shares to a different leaf than the one opened, so the deep link is really being followed rather than an SPA fallback rendering something plausible. Two shell traps on the way. A VAR=x prefix does not apply to $VAR on the same line, because the shell expands the argument before the assignment scopes to the command, so the URLs came out with an empty base; deferring through sh -c fixes it. And a glob in a block comment closed the comment early.
This commit is contained in:
parent
8c3b18a5ee
commit
f132d2e056
2 changed files with 23 additions and 7 deletions
|
|
@ -25,11 +25,25 @@
|
|||
* smoke:embeds PASS 43/43 leaf pages mount cleanly
|
||||
* verify:map-paint PASS 11/11 map leaves paint a real canvas under SwiftShader
|
||||
*
|
||||
* ★ ONE GATE IS DELIBERATELY EXCLUDED. `smoke:share` is NOT in this list and that is not an
|
||||
* oversight: it takes required arguments (--url / --plugin-gallery) and its gallery mode reads
|
||||
* /__plugin-gallery/registry.json, which only the VITE DEV SERVER serves — a different runtime
|
||||
* dependency from the static built tree every gate here targets. Run it separately against
|
||||
* `bun x vite`. Listing it would make this aggregate fail for a reason that is not a defect.
|
||||
* ★ I EXCLUDED smoke:share HERE AND THAT WAS WRONG — corrected 2026-09-22, two ticks later.
|
||||
* The original note read: "it takes required arguments (--url / --plugin-gallery) and its gallery
|
||||
* mode reads /__plugin-gallery/registry.json, which only the VITE DEV SERVER serves". Every clause
|
||||
* is true and the CONCLUSION did not follow. I had tested exactly two invocations — bare (exit 2,
|
||||
* usage) and --plugin-gallery (needs vite) — and never tried --url, which the script's own header
|
||||
* documents FIRST. It runs perfectly against the static tree: measured 8/8 pass, each Share button
|
||||
* reopening the correct custom element with a live canvas.
|
||||
*
|
||||
* That is the same shape as AP-a-plausible-disposition-recorded-without-checking-it, found in my
|
||||
* own work: a not-applicable verdict is more durable than a wrong bug report, because it closes the
|
||||
* question. It cost this suite its highest-consequence surface for two ticks — a share URL is the
|
||||
* one artefact a partner pastes into an email, and it fails SILENTLY.
|
||||
*
|
||||
* It now runs as `smoke:share-all`, a script carrying its own 8 --url flags plus --browser chromium
|
||||
* (Firefox headless has no WebGL on this box, so the default engine stops — see
|
||||
* BUG-SHARE-SMOKE-FIREFOX-DEFAULT-FALSE-FAILURES). The 8 leaves are the set derived by grepping
|
||||
* plugin-designs for ShareButton, not a guess.
|
||||
*
|
||||
* Still not covered here: `--plugin-gallery` mode, which genuinely does need the vite dev server.
|
||||
*
|
||||
* PRECONDITIONS (asserted, not assumed): a built tree, and a static server on the BASE port. Both
|
||||
* are checked up front so a missing server reports as a SETUP problem rather than six mystery
|
||||
|
|
@ -55,6 +69,7 @@ const GATES = [
|
|||
{ script: 'verify:gate1', why: 'the Gate-1 chain filters live data end to end' },
|
||||
{ script: 'check:a11y-button-names', why: 'every visible button has an accessible name' },
|
||||
{ script: 'check:nav-reachable', why: 'a phone can open the cap-5 tab rail' },
|
||||
{ script: 'smoke:share-all', why: 'every Share button emits a URL that reopens the right element' },
|
||||
]
|
||||
|
||||
// ── PRECONDITION 1: a built tree ────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -76,8 +76,9 @@
|
|||
"check:composite-srcs": "node internal/check-composite-srcs.mjs",
|
||||
"check:nested-token": "node internal/check-nested-token-delivery.mjs",
|
||||
"check:nav-reachable": "node internal/check-nav-reachable-mobile.mjs # a cap-5 shell must have ONE on-screen control that opens its tab rail at phone width (needs `bun run serve` on 4173; browser gate, not in build:unlocked)",
|
||||
"verify:browser-all": "node internal/verify-browser-all.mjs # runs ALL 6 browser gates over the built tree in one command (needs `bun run serve` on 4173). Every gate listed was RUN before being listed. smoke:share is excluded on purpose — it needs the vite dev server.",
|
||||
"check:shot-fonts": "node internal/check-shot-fonts.mjs # can THIS machine render the emoji the UI uses? Run BEFORE `bun run shots` — no font = tofu boxes in every committed PNG, which every other shot gate passes. Deliberately NOT in build:unlocked: it reports an ENVIRONMENT condition (this box has no emoji font), and a gate that always fails in the build makes the build useless."
|
||||
"verify:browser-all": "node internal/verify-browser-all.mjs # runs ALL 7 browser gates over the built tree in one command (needs `bun run serve` on 4173 + MAPBOX_TOKEN). Every gate listed was RUN before being listed. Only smoke:share --plugin-gallery mode is out of scope; it needs the vite dev server.",
|
||||
"check:shot-fonts": "node internal/check-shot-fonts.mjs # can THIS machine render the emoji the UI uses? Run BEFORE `bun run shots` — no font = tofu boxes in every committed PNG, which every other shot gate passes. Deliberately NOT in build:unlocked: it reports an ENVIRONMENT condition (this box has no emoji font), and a gate that always fails in the build makes the build useless.",
|
||||
"smoke:share-all": "sh -c 'B=${BASE_URL:-http://127.0.0.1:4173}; exec node internal/share-roundtrip-smoke.mjs --url \"$B/doxa-maps/cities-internet/connectivity-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/country-posters/countries-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/demo-map/demo-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/doxa-research-map/research-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/doxa-simple-map/doxa-simple-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/gospel-resources/resources-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/my-upg-100-list/upg-100-list/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/my-upg-100-list/upg-100-mfe/index.html?tk=$MAPBOX_TOKEN\" --browser chromium'"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@capacitor/android": "^7.6.9",
|
||||
|
|
|
|||
Loading…
Reference in a new issue