Skip to content

Commit the Algorithm Catalog e2e suite into the repo - #228

Merged
kyle-lesinger merged 1 commit into
mainfrom
test/algorithm-catalog-e2e
Aug 14, 2026
Merged

Commit the Algorithm Catalog e2e suite into the repo#228
kyle-lesinger merged 1 commit into
mainfrom
test/algorithm-catalog-e2e

Conversation

@kyle-lesinger

Copy link
Copy Markdown
Member

The 16-check Playwright suite that verified this app lived only in a scratch directory. Everything committed so far is offline verification — validate_data.py, rules_parity_test.py, typecheck, build — so nothing in the repo proved the app actually renders. This moves it in.

What it asserts

Against a running site — dev server, deploy preview, or production (pass a base URL):

  • three tabs, in the Submit / Events / Algorithms order the app is actually used in
  • 8 algorithm cards render, and every thumbnail decodes (naturalWidth > 0 — a 200 on the URL does not prove the browser rendered it)
  • search narrows the catalog, on both viewing tabs
  • all 3 seed events listed
  • five malformed STAC event names each surface an error and keep the submit button disabled
  • a valid name clears those errors
  • no console or page errors

Two of those negative cases are the whole reason this app's rule is stricter than upstream's, so they're the ones most worth locking down:

Case Why it matters
202501_Tropical_Cyclone_CA Passes upstream, silently parsing as hazard Tropical and writing that as the GeoTIFF HAZARD tag
202501_Flood_CA_extra An explicit upstream PASS case (tests/integration/test_dps_validate.sh:41-48) that we knowingly reject

If someone ever relaxes STAC_EVENT_RE back toward upstream's trailing .+, these two fail loudly.

Playwright is deliberately not a dependency

package.json stays at React + ReactDOM so npm ci in CI and on Netlify stays fast. The import is resolved at run time, so a missing Playwright prints install instructions instead of an ERR_MODULE_NOT_FOUND stack trace. Both paths verified.

npm i -g playwright && npx playwright install chromium
node scripts/e2e.mjs                                    # localhost:5173
node scripts/e2e.mjs https://veda-algorithm-catalog.netlify.app
SHOTS=1 node scripts/e2e.mjs                            # screenshots -> scripts/shots/ (gitignored)

Not wired into CI — it needs a browser download and a running server, whereas the CI gate is stdlib and offline. Run it by hand before shipping a UI change.

Verification

16/16 against production (https://veda-algorithm-catalog.netlify.app) using the committed script, with package.json confirmed unmodified (installed via npm i --no-save). typecheck, build, validate_data.py and rules_parity_test.py all still exit 0.

This PR touches algorithm-catalog/, so it will produce a deploy preview — unlike a docs-only PR, which Netlify correctly skips.

The 16-check Playwright suite that verified this app existed only in a
scratch directory, so the only committed verification was offline
(validate_data.py, rules_parity_test.py, typecheck, build). Nothing in the
repo proved the app actually RENDERS. This moves it in.

What it asserts, against a running site (dev server, deploy preview, or
production — pass a base URL):
- three tabs, in the Submit / Events / Algorithms order the app is used in
- 8 algorithm cards render, and every thumbnail DECODES (naturalWidth > 0 —
  a 200 on the URL does not prove the browser rendered it)
- search narrows the catalog, on both viewing tabs
- all 3 seed events listed
- five malformed STAC event names each surface an error AND keep the submit
  button disabled, including the two 3-underscore cases that are the entire
  reason our rule is stricter than upstream's:
  202501_Tropical_Cyclone_CA (passes upstream, silently parsing as hazard
  "Tropical") and 202501_Flood_CA_extra (an explicit upstream PASS case)
- a valid name clears those errors
- no console or page errors

Playwright is deliberately NOT added to package.json. This app's deps stay at
React + ReactDOM so `npm ci` in CI and on Netlify stays fast, so the import is
resolved at run time and a missing Playwright prints install instructions
rather than an ERR_MODULE_NOT_FOUND stack trace. Verified both paths.

Not wired into CI: it needs a browser download and a running server, whereas
the CI gate is stdlib and offline. Run it by hand before shipping a UI change.

SHOTS=1 writes screenshots to scripts/shots/, which .gitignore now excludes.

Verified: 16/16 against https://veda-algorithm-catalog.netlify.app, with
package.json confirmed unmodified (installed via `npm i --no-save`).
@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-github-actions canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-github-actions/deploys/6a7f02cdbdd5cb0008588d19

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-pr-dashboard canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-pr-dashboard/deploys/6a7f02cd5057bd000827b5ce

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-dse-hub canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-dse-hub/deploys/6a7f02cd759af600084e13ed

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-aws-dashboard canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-aws-dashboard/deploys/6a7f02cdfd426c0008756a5a

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-leave-dashboard canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-leave-dashboard/deploys/6a7f02cddc91db0008c0eab4

1 similar comment
@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-leave-dashboard canceled.

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-leave-dashboard/deploys/6a7f02cddc91db0008c0eab4

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for veda-algorithm-catalog ready!

Name Link
🔨 Latest commit 8df93d2
🔍 Latest deploy log https://app.netlify.com/projects/veda-algorithm-catalog/deploys/6a7f02cd5982f00008040511
😎 Deploy Preview https://deploy-preview-228--veda-algorithm-catalog.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@kyle-lesinger
kyle-lesinger merged commit 3aa96ab into main Aug 14, 2026
25 of 26 checks passed
@kyle-lesinger
kyle-lesinger deleted the test/algorithm-catalog-e2e branch August 14, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant