test: rewrite e2e suite as Cucumber (godog) browser tests - #44
Merged
Conversation
Replace the old chromedp/HTTP e2e tests with a Cucumber/Gherkin suite run via godog. Every scenario drives the real dashboard in headless Chrome; function invocation uses the public /fn HTTP endpoint. Feature files stay product-level (no selectors); the step code holds all interaction detail. Also wire the AI/email request trackers in the e2e test server so opening an execution's detail page no longer nil-panics, add an E2E_HEADED flag plus a test-e2e-headed task to watch a real browser, raise the e2e test timeout, and update the README and testing-strategy ADR.
aiRequestConnection and emailRequestConnection now guard against a nil tracker and return an empty connection instead of dereferencing it, so an execution's AI/email request connections degrade gracefully when tracking is not configured rather than panicking. Add a regression test.
jdx/mise-action@v2 and actions/cache@v4 run on the deprecated Node 20 runtime. Bump to mise-action@v4 and cache@v5 (both Node 24) to clear the GitHub Actions deprecation warning in the test and e2e jobs.
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.
Replaces the old chromedp/HTTP e2e tests with a Cucumber/Gherkin suite run via godog: 29 scenarios across 8 feature files drive the real dashboard in headless Chrome — sign-in, function create/list/rename/delete, invocation, versions/rollback/diff, env vars, the KV store, scheduling, execution history and detail, the Test page, and connected clients. Feature files stay product-level (no selectors); the Go step definitions hold all browser interaction, and function invocation goes through the public
/fnHTTP endpoint a real client would call. While adding the execution-detail scenario this surfaced a nil-panic, so the e2e test server now wires the AI/email request trackers exactly as production does. The PR also adds anE2E_HEADEDflag plus atest-e2e-headedmise task to watch a real browser, raises the e2e timeout (go test -timeout 20mwith a 25-minute CI job cap), and updates the README and testing-strategy ADR; the old*_test.goe2e files are removed.