Run the e2e suite on web in CI, and add AGENTS.md - #461
Merged
Conversation
The e2e app now boots into the cavynext test runner on web
('npm run test:e2e:web'), in headless Chrome when E2E_HEADLESS=true, and the
web PR workflow runs it alongside the build and docs checks.
AGENTS.md documents the repository layout, the per-package vs root commands,
what each CI workflow actually verifies and the web e2e pitfalls.
Co-Authored-By: tom.vanlaerhoven <tom.vanlaerhoven@dolby.com>
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
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 e2e app can now boot into the cavynext test runner on web, and
pr_web.ymlruns that suite(
E2E_HEADLESS=true npm run test:e2e:web) next to the existing build + docs check. All 8 connectorspecs pass locally in headless Chrome (
8 examples, 0 failures).Four things were blocking a web run, all in
apps/e2e:Entry naming. cavynext only accepts entry files ending in
.jsand swapsindex.web.jsforindex.test.web.jswhile it runs, soindex.web.tsxwas split into.jswrappers plusweb/app.web.tsx(normal app) andweb/test.web.tsx(test app, deliberately not in<StrictMode>).Worker version mismatch. webpack copied the THEOplayer worker/iframe assets from the workspace
root while bundling the player hoisted into
apps/e2e, which fails at runtime with "THEOplayerworkers could not be loaded". Both now come from the same package:
iframe.htmlwas missing from the copy patterns altogether (404 ontheoplayer/iframe.html).Autoplay. the test player gets a web config (
libraryLocation: 'theoplayer',mutedAutoplay: 'all'), without which the suite hangs afterplayand never reachesplaying.Headless browser.
E2E_HEADLESS=truemakes the dev server open Chrome headless with adedicated
--user-data-dir; joining an already running browser makes cavynext see "an extra appconnection" and hang.
.envis now optional, since CI has none.AGENTS.mdis the repository guidance file coding agents read automatically. It records what neededrediscovering: per-package
npm test/npm run typescriptvs the rootnpm testbeing a typedocdocs check, what each CI workflow really verifies, the known-red root prettier files under
comscore/,drm/andengage/that must not be reformatted, changeset and peerDependency rules,and the web e2e pitfalls above.
Verified: root
npm run build,npm test,npm run lint(0 errors) and the headless web e2e run.Link to Devin session: https://dolby.devinenterprise.com/sessions/3a7ef07a2c3e45b9801dc0296f2d3ea4
Requested by: @tvanlaerhoven