Browser smoke test and demo recorder in the repo - #30
Merged
Merged
Conversation
Web/e2e/smoke.mjs drives a running app end to end with Playwright: import a dataset, preview and export it, run a measured optimization, try both prompts on an input, check analytics, delete the dataset and reload; it exits non-zero on any failed step or page error and removes the sessions it created. Web/e2e/record-demo.mjs records a GEPA run and scripts/record-demo.sh turns it into docs/demo.gif. Root scripts: e2e, e2e:install, demo:record.
shirkattack
force-pushed
the
feat/e2e-smoke
branch
from
September 3, 2026 19:55
96e7dbd to
ada6cb0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The headless click-through that verified every PR this week, committed so it can be run before merges.
npm run e2e(Web/e2e/smoke.mjs): against a runningnpm run dev, imports a dataset, previews and exports it, runs a measured optimization with the default model, tries both prompts on an input, checks analytics, deletes the dataset, and reloads. Fails on any step or page error, saves screenshots to a temp dir, and deletes the sessions it created.WEB_URL/API_URLoverride the targets.npm run e2e:install: one-time Chromium download.npm run demo:record(Web/e2e/record-demo.mjs+scripts/record-demo.sh): records a GEPA run and re-encodes it intodocs/demo.gifwith the waiting phase sped up. Needs a full ffmpeg; the note about DSPy's cache (vary the prompt so the run is not replayed instantly) is in the script.Needs Ollama with a model, so this stays a local check; CI (#29) covers the hermetic suites.
Verification
npm run e2eagainst a fresh API on a scratch database and a web dev server: 9/9 steps pass, no console output, exit 0