refactor(e2e): consolidate e2e test infrastructure into single directory tree#128
refactor(e2e): consolidate e2e test infrastructure into single directory tree#128
Conversation
Replace the two parallel e2e directory trees (local-dist/ and all-versions/) with a single set of app source files under e2e/. - e2e/host-app/, e2e/guest-app/, e2e/tests/ replace both old trees - package.json.dist templates committed with SDK_VERSION placeholder; generated package.json/package-lock.json/node_modules gitignored - scripts/e2e-setup.mjs handles both local builds and published versions: node scripts/e2e-setup.mjs [host|guest|tests|all] [local|<semver>] - scripts/e2e-run.mjs orchestrates full local test run (setup, start servers, wait, run tests, teardown) - npm run test:e2e / e2e:host / e2e:guest added to root package.json - Both CI workflows updated to use e2e-setup.mjs - scripts/copy-local-dist.js removed (logic absorbed into e2e-setup.mjs) Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR consolidates the repo’s end-to-end (E2E) testing setup into a single e2e/ directory tree and introduces new scripts to set up/run the E2E flow (apps + TestCafe) more consistently across local and CI usage.
Changes:
- Added
scripts/e2e-setup.mjsandscripts/e2e-run.mjsto generate apppackage.jsonfrom templates, install deps, inject local SDK builds, and orchestrate local E2E runs. - Replaced the prior
e2e/local-dist/**ande2e/all-versions/**structures with consolidatede2e/host-app,e2e/guest-app, ande2e/tests, plus new TestCafe scenarios. - Updated root scripts and GitHub workflows to use the new setup flow.
Reviewed changes
Copilot reviewed 73 out of 102 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/e2e-setup.mjs | New setup script to generate app manifests from templates and (optionally) inject local SDK builds. |
| scripts/e2e-run.mjs | New local E2E orchestrator (setup, start servers, wait, run TestCafe, cleanup). |
| scripts/copy-local-dist.js | Removes old local-dist copy script in favor of new setup flow. |
| packages/uix-host-react/src/hooks/useExtensions.ts | Adds unload subscription logging (currently includes a console.log). |
| package.json | Adds E2E scripts; removes copy:local-dist; formatting change in scripts block. |
| e2e/tests/tests/requires-enforcement.js | New TestCafe scenario verifying requires enforcement. |
| e2e/tests/tests/multi-extension.js | New TestCafe scenario verifying multiple extensions load/respond. |
| e2e/tests/tests/load-failure.js | New TestCafe scenario verifying one dead URL doesn’t block others. |
| e2e/tests/tests/lifecycle.js | New TestCafe scenario verifying reconnect behavior after navigation/reload. |
| e2e/tests/tests/host-provides.js | New TestCafe scenario validating guest can call host-provided API. |
| e2e/tests/tests/dynamic-extensions.js | New TestCafe scenario for dynamic extensions via callback identity change. |
| e2e/tests/tests/check-button.js | Tightens assertion to ensure iframe src points to guest app URL. |
| e2e/tests/selectors/xpath-selector.js | Adds XPath selector helper (currently appears unused). |
| e2e/tests/package.json.dist | Renames/normalizes E2E tests package template. |
| e2e/tests/.testcaferc.local.json | Adds local TestCafe config. |
| e2e/tests/.testcaferc.json | Updates defaults (debugOnFail/stopOnFirstFail disabled). |
| e2e/local-dist/tests/tests/check-button.js | Removes legacy local-dist TestCafe test. |
| e2e/local-dist/tests/selectors/xpath-selector.js | Removes legacy local-dist selector helper. |
| e2e/local-dist/tests/.testcaferc.local.json | Removes legacy local-dist TestCafe config. |
| e2e/local-dist/tests/.testcaferc.json | Removes legacy local-dist TestCafe config. |
| e2e/local-dist/tests/.gitignore | Removes legacy local-dist tests ignore file. |
| e2e/local-dist/package.json | Removes legacy local-dist root runner package. |
| e2e/local-dist/host-app/src/setupTests.js | Removes legacy local-dist host-app CRA setupTests file. |
| e2e/local-dist/host-app/src/index.js | Removes legacy local-dist host-app entry. |
| e2e/local-dist/host-app/src/App.js | Removes legacy local-dist host-app app component. |
| e2e/local-dist/host-app/src/App.css | Removes legacy local-dist host-app styling. |
| e2e/local-dist/host-app/public/robots.txt | Removes legacy local-dist host-app robots file. |
| e2e/local-dist/host-app/public/manifest.json | Removes legacy local-dist host-app manifest. |
| e2e/local-dist/host-app/public/index.html | Removes legacy local-dist host-app HTML template. |
| e2e/local-dist/host-app/package.json | Removes legacy local-dist host-app package manifest. |
| e2e/local-dist/host-app/README.md | Removes legacy local-dist host-app README. |
| e2e/local-dist/host-app/.gitignore | Removes legacy local-dist host-app ignore file. |
| e2e/local-dist/guest-app/src/setupTests.js | Removes legacy local-dist guest-app CRA setupTests file. |
| e2e/local-dist/guest-app/src/index.js | Removes legacy local-dist guest-app entry. |
| e2e/local-dist/guest-app/src/index.css | Removes legacy local-dist guest-app styling. |
| e2e/local-dist/guest-app/src/MainApp.jsx | Removes legacy local-dist guest main UI. |
| e2e/local-dist/guest-app/src/Constants.js | Removes legacy local-dist guest constants. |
| e2e/local-dist/guest-app/public/robots.txt | Removes legacy local-dist guest robots file. |
| e2e/local-dist/guest-app/public/manifest.json | Removes legacy local-dist guest manifest. |
| e2e/local-dist/guest-app/public/index.html | Removes legacy local-dist guest HTML template. |
| e2e/local-dist/guest-app/package.json | Removes legacy local-dist guest package manifest. |
| e2e/local-dist/guest-app/README.md | Removes legacy local-dist guest README. |
| e2e/local-dist/guest-app/.gitignore | Removes legacy local-dist guest ignore file. |
| e2e/local-dist/README.md | Removes legacy local-dist documentation. |
| e2e/host-app/src/setupTests.js | Adds CRA setupTests for new consolidated host app. |
| e2e/host-app/src/index.js | Adds consolidated host app entry. |
| e2e/host-app/src/HostAppRequires.jsx | Adds host scenario component for requires enforcement. |
| e2e/host-app/src/HostAppMulti.jsx | Adds host scenario component for multiple extensions. |
| e2e/host-app/src/HostAppLoadFailure.jsx | Adds host scenario component for dead-url scenario. |
| e2e/host-app/src/HostAppDynamic.jsx | Adds host scenario component for dynamic extension injection. |
| e2e/host-app/src/HostApp.jsx | Adds extension-count output for TestCafe assertions. |
| e2e/host-app/src/App.js | Adds routing/scenario selection based on URL hash. |
| e2e/host-app/src/App.css | Adds consolidated host app styling. |
| e2e/host-app/public/robots.txt | Adds consolidated host app robots file. |
| e2e/host-app/public/manifest.json | Adds consolidated host app manifest. |
| e2e/host-app/public/index.html | Adds consolidated host app HTML template. |
| e2e/host-app/public/favicon.ico | Adds consolidated host app favicon. |
| e2e/host-app/package.json.dist | Updates host app template to use SDK_VERSION placeholders. |
| e2e/guest-app/src/setupTests.js | Adds CRA setupTests for consolidated guest app. |
| e2e/guest-app/src/index.js | Adds consolidated guest app entry. |
| e2e/guest-app/src/index.css | Adds consolidated guest app styling. |
| e2e/guest-app/src/MainApp.jsx | Extends guest UI to display host-provided info. |
| e2e/guest-app/src/ExtentionPartial.jsx | Implements partial extension (missing required method) for requires scenario. |
| e2e/guest-app/src/Extention.jsx | Supports dynamic extension IDs via hash query and reads host-provided info. |
| e2e/guest-app/src/Constants.js | Adds guest constants file (reintroduced in consolidated tree). |
| e2e/guest-app/src/App.js | Adds route for partial registration view. |
| e2e/guest-app/scripts/start.js | Makes guest start script respect PORT env var. |
| e2e/guest-app/public/robots.txt | Adds consolidated guest app robots file. |
| e2e/guest-app/public/manifest.json | Adds consolidated guest app manifest. |
| e2e/guest-app/public/logo512.png | Adds consolidated guest app logo asset. |
| e2e/guest-app/public/logo192.png | Adds consolidated guest app logo asset. |
| e2e/guest-app/public/index.html | Adds consolidated guest app HTML template. |
| e2e/guest-app/public/favicon.ico | Adds consolidated guest app favicon. |
| e2e/guest-app/package.json.dist | Updates guest app template to use SDK_VERSION placeholders. |
| e2e/all-versions/start.sh | Removes old all-versions starter script (superseded by e2e-setup). |
| e2e/all-versions/host-app/src/HostApp.jsx | Removes old all-versions host app scenario code. |
| e2e/all-versions/host-app/src/App.js | Removes old all-versions host app wrapper. |
| e2e/all-versions/host-app/README.md | Removes old all-versions host README. |
| e2e/all-versions/host-app/.gitignore | Removes old all-versions host ignore file. |
| e2e/all-versions/guest-app/src/MainApp.jsx | Removes old all-versions guest UI. |
| e2e/all-versions/guest-app/src/App.js | Removes old all-versions guest router. |
| e2e/all-versions/guest-app/scripts/start.js | Removes old all-versions guest start script. |
| e2e/all-versions/guest-app/README.md | Removes old all-versions guest README. |
| e2e/all-versions/guest-app/.gitignore | Removes old all-versions guest ignore file. |
| e2e/all-versions/e2e-tests/package.json | Removes old all-versions test runner package. |
| e2e/all-versions/e2e-tests/.gitignore | Removes old all-versions test ignore file. |
| e2e/.gitignore | Ignores generated package.json/locks/node_modules under e2e apps/tests. |
| CLAUDE.md | Documents new E2E setup/run workflow and related guidance. |
| .github/workflows/e2e-local-dist.yml | Updates CI to use consolidated e2e/** + new setup script. |
| .github/workflows/e2e-all-versions.yml | Updates matrix workflow to set up apps via scripts/e2e-setup.mjs. |
| .claude/commands/e2e.md | Adds a Claude command doc for running E2E locally. |
| .claude/agents/react-best-practices-reviewer.md | Adds a Claude agent prompt for React best-practices reviews. |
You can also share your feedback on Copilot code review. Take the survey.
The multi-extension test expects two guest app instances (ports 3002 and 3003) to simulate two extensions loading simultaneously. Only one was started, causing the "Both extensions should be loaded" assertion to fail with count 1 instead of 2. Co-Authored-By: Claude <noreply@anthropic.com>
- e2e-setup.mjs: copy SDK dist/ into <module>/dist/ so package.json
entrypoints (main/types pointing to dist/index.*) resolve correctly
- e2e-run.mjs: guard freePort() with platform check; emit a clear
warning on Windows instead of silently failing with lsof/kill -9
- useExtensions.ts: remove stray console.log("subscribeToUnload")
- package.json: fix missing indentation on declarations:build script
- CLAUDE.md: update Known pitfalls to reflect the corrected dist layout
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR consolidates the repo’s E2E testing setup into a single e2e/ directory tree, replacing the previous split between e2e/local-dist and e2e/all-versions, and introduces a unified local runner/setup workflow for TestCafe-based E2E.
Changes:
- Added
scripts/e2e-setup.mjs+scripts/e2e-run.mjsto generate apppackage.jsonfrom templates, install deps, inject local SDK builds, and orchestrate local E2E runs. - Reorganized E2E apps/tests into
e2e/{host-app,guest-app,tests}and added multiple host scenarios (multi extension, load failure, requires enforcement, dynamic extensions) with corresponding TestCafe tests. - Updated npm scripts, docs, and GitHub workflows to use the consolidated E2E layout; removed legacy
local-distandall-versionsassets and scripts.
Reviewed changes
Copilot reviewed 72 out of 101 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/e2e-setup.mjs | New unified E2E app setup (template → package.json, install, local SDK injection). |
| scripts/e2e-run.mjs | New local E2E orchestrator (setup, start servers, wait, run TestCafe, cleanup). |
| scripts/copy-local-dist.js | Removed legacy local-dist dist-copy helper. |
| package.json | Adds test:e2e scripts; removes legacy copy:local-dist. |
| e2e/tests/tests/requires-enforcement.js | New TestCafe scenario coverage for requires enforcement. |
| e2e/tests/tests/multi-extension.js | New TestCafe coverage for multiple simultaneous extensions. |
| e2e/tests/tests/load-failure.js | New TestCafe coverage for partial load failure handling. |
| e2e/tests/tests/lifecycle.js | New TestCafe coverage for reconnect after host reload. |
| e2e/tests/tests/host-provides.js | New TestCafe coverage validating host-provided API usage. |
| e2e/tests/tests/dynamic-extensions.js | New TestCafe coverage for extensionsListCallback dynamic injection. |
| e2e/tests/tests/check-button.js | Tightens iframe src assertion to ensure it targets guest app URL. |
| e2e/tests/selectors/xpath-selector.js | Restores shared XPath selector helper in consolidated tests tree. |
| e2e/tests/package.json.dist | Renames/updates test runner package template for consolidated layout. |
| e2e/tests/.testcaferc.local.json | Adds local TestCafe config for consolidated tests. |
| e2e/tests/.testcaferc.json | Adjusts default TestCafe run behavior (no debug/stop-on-first-fail). |
| e2e/local-dist/tests/tests/check-button.js | Removed legacy local-dist TestCafe test file. |
| e2e/local-dist/tests/selectors/xpath-selector.js | Removed legacy local-dist selector helper. |
| e2e/local-dist/tests/.testcaferc.local.json | Removed legacy local-dist TestCafe local config. |
| e2e/local-dist/tests/.testcaferc.json | Removed legacy local-dist TestCafe config. |
| e2e/local-dist/tests/.gitignore | Removed legacy local-dist test ignore file. |
| e2e/local-dist/package.json | Removed legacy local-dist orchestration package.json. |
| e2e/local-dist/host-app/src/setupTests.js | Removed legacy local-dist host app file. |
| e2e/local-dist/host-app/src/index.js | Removed legacy local-dist host app file. |
| e2e/local-dist/host-app/src/App.js | Removed legacy local-dist host app file. |
| e2e/local-dist/host-app/src/App.css | Removed legacy local-dist host app styles. |
| e2e/local-dist/host-app/public/robots.txt | Removed legacy local-dist host app public asset. |
| e2e/local-dist/host-app/public/manifest.json | Removed legacy local-dist host app public asset. |
| e2e/local-dist/host-app/public/index.html | Removed legacy local-dist host app public asset. |
| e2e/local-dist/host-app/package.json | Removed legacy local-dist host app package.json. |
| e2e/local-dist/host-app/README.md | Removed legacy local-dist host app README. |
| e2e/local-dist/host-app/.gitignore | Removed legacy local-dist host app ignore file. |
| e2e/local-dist/guest-app/src/setupTests.js | Removed legacy local-dist guest app file. |
| e2e/local-dist/guest-app/src/index.js | Removed legacy local-dist guest app file. |
| e2e/local-dist/guest-app/src/index.css | Removed legacy local-dist guest app styles. |
| e2e/local-dist/guest-app/src/MainApp.jsx | Removed legacy local-dist guest app UI component. |
| e2e/local-dist/guest-app/src/Constants.js | Removed legacy local-dist guest app constants. |
| e2e/local-dist/guest-app/public/robots.txt | Removed legacy local-dist guest app public asset. |
| e2e/local-dist/guest-app/public/manifest.json | Removed legacy local-dist guest app public asset. |
| e2e/local-dist/guest-app/public/index.html | Removed legacy local-dist guest app public asset. |
| e2e/local-dist/guest-app/package.json | Removed legacy local-dist guest app package.json. |
| e2e/local-dist/guest-app/README.md | Removed legacy local-dist guest app README. |
| e2e/local-dist/guest-app/.gitignore | Removed legacy local-dist guest app ignore file. |
| e2e/local-dist/README.md | Removed legacy local-dist documentation. |
| e2e/host-app/src/setupTests.js | Adds CRA test setup file in consolidated host app tree. |
| e2e/host-app/src/index.js | Adds CRA entrypoint in consolidated host app tree. |
| e2e/host-app/src/HostAppRequires.jsx | New host scenario component for requires enforcement. |
| e2e/host-app/src/HostAppMulti.jsx | New host scenario component for multi-extension scenario. |
| e2e/host-app/src/HostAppLoadFailure.jsx | New host scenario component for load-failure scenario. |
| e2e/host-app/src/HostAppDynamic.jsx | New host scenario component for dynamic extensions scenario. |
| e2e/host-app/src/HostApp.jsx | Adds extension count element for E2E assertions. |
| e2e/host-app/src/App.js | Adds hash-based scenario router + Extensible wrapper composition. |
| e2e/host-app/src/App.css | Adds consolidated host app styling. |
| e2e/host-app/public/robots.txt | Adds consolidated host app public asset. |
| e2e/host-app/public/manifest.json | Adds consolidated host app public asset. |
| e2e/host-app/public/index.html | Adds consolidated host app public asset. |
| e2e/host-app/public/favicon.ico | Adds consolidated host app favicon. |
| e2e/host-app/package.json.dist | Switches SDK deps to SDK_VERSION placeholder for setup script. |
| e2e/guest-app/src/setupTests.js | Adds CRA test setup file in consolidated guest app tree. |
| e2e/guest-app/src/index.js | Adds CRA entrypoint in consolidated guest app tree. |
| e2e/guest-app/src/index.css | Adds consolidated guest app styling. |
| e2e/guest-app/src/MainApp.jsx | Adds host-provided info display and storage listener logic. |
| e2e/guest-app/src/ExtentionPartial.jsx | Adjusts partial registration to intentionally omit required methods. |
| e2e/guest-app/src/Extention.jsx | Adds per-extension ID support via ?id= and host-provides call. |
| e2e/guest-app/src/Constants.js | Adds consolidated guest app constants file. |
| e2e/guest-app/src/App.js | Adds route for partial registration scenario. |
| e2e/guest-app/scripts/start.js | Makes guest port configurable via PORT env. |
| e2e/guest-app/public/robots.txt | Adds consolidated guest app public asset. |
| e2e/guest-app/public/manifest.json | Adds consolidated guest app public asset. |
| e2e/guest-app/public/logo512.png | Adds consolidated guest app logo asset. |
| e2e/guest-app/public/logo192.png | Adds consolidated guest app logo asset. |
| e2e/guest-app/public/index.html | Adds consolidated guest app public asset. |
| e2e/guest-app/public/favicon.ico | Adds consolidated guest app favicon. |
| e2e/guest-app/package.json.dist | Switches SDK deps to SDK_VERSION placeholder for setup script. |
| e2e/all-versions/start.sh | Removed legacy all-versions app start helper. |
| e2e/all-versions/host-app/src/HostApp.jsx | Removed legacy all-versions host app code. |
| e2e/all-versions/host-app/src/App.js | Removed legacy all-versions host app code. |
| e2e/all-versions/host-app/README.md | Removed legacy all-versions host app docs. |
| e2e/all-versions/host-app/.gitignore | Removed legacy all-versions host app ignore file. |
| e2e/all-versions/guest-app/src/MainApp.jsx | Removed legacy all-versions guest app code. |
| e2e/all-versions/guest-app/src/App.js | Removed legacy all-versions guest app code. |
| e2e/all-versions/guest-app/scripts/start.js | Removed legacy all-versions guest app start helper. |
| e2e/all-versions/guest-app/README.md | Removed legacy all-versions guest app docs. |
| e2e/all-versions/guest-app/.gitignore | Removed legacy all-versions guest app ignore file. |
| e2e/all-versions/e2e-tests/package.json | Removed legacy all-versions TestCafe package. |
| e2e/all-versions/e2e-tests/.gitignore | Removed legacy all-versions TestCafe ignore file. |
| e2e/.gitignore | Ignores generated app package.json/lock/node_modules + TestCafe artifacts. |
| CLAUDE.md | Documents new E2E workflow and scripts. |
| .github/workflows/e2e-local-dist.yml | Updates CI to use consolidated e2e/ layout and setup script. |
| .github/workflows/e2e-all-versions.yml | Updates matrix workflow to use scripts/e2e-setup.mjs + consolidated tests. |
| .claude/commands/e2e.md | Adds a documented command entry for running E2E locally. |
| .claude/agents/react-best-practices-reviewer.md | Adds an internal Claude agent definition (repo tooling). |
Comments suppressed due to low confidence (1)
e2e/host-app/src/HostApp.jsx:41
- This uses
extensions.length, which assumesextensionsis always an array. In this fileuseExtensionsis currently destructured with a default of{}; ifextensionswere everundefined(e.g. due to an error path or future refactor),extensions.lengthwill beundefinedand the UI/tests will break. Default to[]for consistency with the hook’s return type and the other host-app scenarios.
You can also share your feedback on Copilot code review. Take the survey.
- Add .tsx to extensionsToTreatAsEsm and testMatch for host-react project - Add moduleNameMapper per-project for host-react to resolve .js imports - Fix extensionsListCallback test assertion: expect.anything() does not match undefined (guestOptions defaults to undefined when not provided) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Refactors the repository’s E2E infrastructure to live under a single e2e/ tree and adds first-class scripts/workflows to set up and run E2E tests against either local builds or published SDK versions.
Changes:
- Introduces
scripts/e2e-setup.mjs,scripts/e2e-run.mjs, andscripts/e2e-dev.mjsto generate apppackage.jsonfiles from templates, install deps, inject local SDKdist/, and orchestrate TestCafe runs. - Consolidates E2E apps/tests into
e2e/host-app,e2e/guest-app,e2e/tests, removing the legacye2e/local-distande2e/all-versionsapp trees. - Expands Jest config to treat
.tsxas ESM and to include*.test.tsxin theuix-host-reactJest project; adds/updates E2E scenarios and unit coverage forextensionsListCallback.
Reviewed changes
Copilot reviewed 77 out of 106 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/e2e-setup.mjs | New setup tool to generate package.json from .dist, install deps, inject local SDK builds into app node_modules, and clear caches. |
| scripts/e2e-run.mjs | New orchestrator to free ports, run setup, start host/guest servers, wait for readiness, run TestCafe, and teardown. |
| scripts/e2e-dev.mjs | New dev helper to build + setup + start servers for manual E2E debugging. |
| scripts/copy-local-dist.js | Removes legacy “copy dist into node_modules” script in favor of e2e-setup.mjs. |
| packages/uix-host-react/src/components/Extensible.test.tsx | Adds unit test ensuring extensionsListCallback output is what gets loaded. |
| package.json | Removes copy:local-dist; adds test:e2e/dev convenience scripts. |
| jest.config.ts | Treats .tsx as ESM and adds *.test.tsx matching for the host-react project. |
| e2e/tests/tests/requires-enforcement.js | Adds TestCafe scenario validating requires enforcement excludes incomplete extensions. |
| e2e/tests/tests/multi-extension.js | Adds TestCafe scenario validating two extensions load/respond. |
| e2e/tests/tests/load-failure.js | Adds TestCafe scenario validating one extension can load when another URL is unreachable. |
| e2e/tests/tests/lifecycle.js | Adds TestCafe scenario validating reconnect behavior after host reload. |
| e2e/tests/tests/host-provides.js | Adds TestCafe scenario validating guest can call host-provided API. |
| e2e/tests/tests/extensions-list-callback.js | Adds TestCafe scenario validating extensionsListCallback affects initial load. |
| e2e/tests/tests/dynamic-extensions.js | Adds TestCafe scenario validating callback identity change can dynamically add extensions. |
| e2e/tests/tests/check-button.js | Tightens iframe src assertion to ensure it points at the guest app URL. |
| e2e/tests/selectors/xpath-selector.js | Moves legacy XPath selector helper into consolidated E2E tests tree. |
| e2e/tests/package.json.dist | Renames/normalizes the TestCafe runner template package metadata. |
| e2e/tests/.testcaferc.local.json | Adds local (non-headless) TestCafe config. |
| e2e/tests/.testcaferc.json | Adjusts debug/stop-on-fail flags for CI friendliness. |
| e2e/local-dist/tests/tests/check-button.js | Deletes legacy local-dist test file (consolidation). |
| e2e/local-dist/tests/selectors/xpath-selector.js | Deletes legacy local-dist selector helper (moved). |
| e2e/local-dist/tests/.testcaferc.local.json | Deletes legacy local-dist TestCafe config (moved). |
| e2e/local-dist/tests/.testcaferc.json | Deletes legacy local-dist TestCafe config (moved). |
| e2e/local-dist/tests/.gitignore | Deletes legacy local-dist tests ignore file (consolidation). |
| e2e/local-dist/package.json | Deletes legacy local-dist wrapper package.json (consolidation). |
| e2e/local-dist/host-app/src/setupTests.js | Deletes legacy local-dist host-app setupTests (consolidation). |
| e2e/local-dist/host-app/src/index.js | Deletes legacy local-dist host-app entry (consolidation). |
| e2e/local-dist/host-app/src/App.js | Deletes legacy local-dist host-app app component (consolidation). |
| e2e/local-dist/host-app/src/App.css | Deletes legacy local-dist host-app CSS (consolidation). |
| e2e/local-dist/host-app/public/robots.txt | Deletes legacy local-dist host-app public asset (consolidation). |
| e2e/local-dist/host-app/public/manifest.json | Deletes legacy local-dist host-app public asset (consolidation). |
| e2e/local-dist/host-app/public/index.html | Deletes legacy local-dist host-app public asset (consolidation). |
| e2e/local-dist/host-app/public/favicon.ico | Deletes legacy local-dist host-app favicon (consolidation). |
| e2e/local-dist/host-app/package.json | Deletes legacy local-dist host-app package.json (consolidation). |
| e2e/local-dist/host-app/README.md | Deletes legacy local-dist host-app README (consolidation). |
| e2e/local-dist/host-app/.gitignore | Deletes legacy local-dist host-app ignore file (consolidation). |
| e2e/local-dist/guest-app/src/setupTests.js | Deletes legacy local-dist guest-app setupTests (consolidation). |
| e2e/local-dist/guest-app/src/index.js | Deletes legacy local-dist guest-app entry (consolidation). |
| e2e/local-dist/guest-app/src/index.css | Deletes legacy local-dist guest-app CSS (consolidation). |
| e2e/local-dist/guest-app/src/MainApp.jsx | Deletes legacy local-dist guest UI component (consolidation). |
| e2e/local-dist/guest-app/src/Constants.js | Deletes legacy local-dist constants (consolidation). |
| e2e/local-dist/guest-app/public/robots.txt | Deletes legacy local-dist guest-app public asset (consolidation). |
| e2e/local-dist/guest-app/public/manifest.json | Deletes legacy local-dist guest-app public asset (consolidation). |
| e2e/local-dist/guest-app/public/logo512.png | Deletes legacy local-dist guest-app public asset (consolidation). |
| e2e/local-dist/guest-app/public/logo192.png | Deletes legacy local-dist guest-app public asset (consolidation). |
| e2e/local-dist/guest-app/public/index.html | Deletes legacy local-dist guest-app public asset (consolidation). |
| e2e/local-dist/guest-app/public/favicon.ico | Deletes legacy local-dist guest-app favicon (consolidation). |
| e2e/local-dist/guest-app/package.json | Deletes legacy local-dist guest-app package.json (consolidation). |
| e2e/local-dist/guest-app/README.md | Deletes legacy local-dist guest-app README (consolidation). |
| e2e/local-dist/guest-app/.gitignore | Deletes legacy local-dist guest-app ignore file (consolidation). |
| e2e/local-dist/README.md | Deletes legacy local-dist documentation (replaced by consolidated docs). |
| e2e/host-app/src/setupTests.js | Adds CRA test setup file for consolidated host app. |
| e2e/host-app/src/index.js | Adds consolidated host app entry point. |
| e2e/host-app/src/HostAppRequires.jsx | Adds host scenario component for requires-enforcement E2E test. |
| e2e/host-app/src/HostAppMulti.jsx | Adds host scenario component for multi-extension E2E test. |
| e2e/host-app/src/HostAppLoadFailure.jsx | Adds host scenario component for load-failure E2E test. |
| e2e/host-app/src/HostAppDynamic.jsx | Adds host scenario component for dynamic callback identity E2E test. |
| e2e/host-app/src/HostAppCallbackAdd.jsx | Adds host scenario component for callback-add E2E test. |
| e2e/host-app/src/HostApp.jsx | Adds #extension-count element used by multiple E2E tests. |
| e2e/host-app/src/App.js | Adds scenario router selecting host E2E scenario based on hash route. |
| e2e/host-app/src/App.css | Adds consolidated host app CSS. |
| e2e/host-app/public/robots.txt | Adds consolidated host app public asset. |
| e2e/host-app/public/manifest.json | Adds consolidated host app public asset. |
| e2e/host-app/public/index.html | Adds consolidated host app public asset. |
| e2e/host-app/public/favicon.ico | Adds consolidated host app favicon. |
| e2e/host-app/package.json.dist | Replaces pinned SDK deps with SDK_VERSION placeholders for setup script substitution. |
| e2e/guest-app/src/setupTests.js | Adds CRA test setup file for consolidated guest app. |
| e2e/guest-app/src/index.js | Adds consolidated guest app entry point. |
| e2e/guest-app/src/index.css | Adds consolidated guest app CSS. |
| e2e/guest-app/src/MainApp.jsx | Adds guest UI to display host-provided info and host->guest message via localStorage. |
| e2e/guest-app/src/ExtentionPartial.jsx | Adjusts partial registration extension to intentionally omit required method for enforcement scenario. |
| e2e/guest-app/src/Extention.jsx | Adds hash query parsing for extension IDs and optional call to host-provided API. |
| e2e/guest-app/src/Constants.js | Adds constants module used by guest app. |
| e2e/guest-app/src/App.js | Adds partial registration route for requires-enforcement scenario. |
| e2e/guest-app/scripts/start.js | Makes guest dev server port configurable via PORT env (required for 3002 + 3003 instances). |
| e2e/guest-app/public/robots.txt | Adds consolidated guest app public asset. |
| e2e/guest-app/public/manifest.json | Adds consolidated guest app public asset. |
| e2e/guest-app/public/logo512.png | Adds consolidated guest app public asset. |
| e2e/guest-app/public/logo192.png | Adds consolidated guest app public asset. |
| e2e/guest-app/public/index.html | Adds consolidated guest app public asset. |
| e2e/guest-app/public/favicon.ico | Adds consolidated guest app favicon. |
| e2e/guest-app/package.json.dist | Replaces pinned SDK deps with SDK_VERSION placeholders for setup script substitution. |
| e2e/all-versions/start.sh | Removes legacy all-versions start script in favor of e2e-setup.mjs. |
| e2e/all-versions/host-app/src/HostApp.jsx | Deletes legacy all-versions host app component (consolidation). |
| e2e/all-versions/host-app/src/App.js | Deletes legacy all-versions host app wrapper (consolidation). |
| e2e/all-versions/host-app/README.md | Deletes legacy all-versions CRA README (consolidation). |
| e2e/all-versions/host-app/.gitignore | Deletes legacy all-versions ignore file (consolidation). |
| e2e/all-versions/guest-app/src/MainApp.jsx | Deletes legacy all-versions guest UI component (consolidation). |
| e2e/all-versions/guest-app/src/App.js | Deletes legacy all-versions guest app router (consolidation). |
| e2e/all-versions/guest-app/scripts/start.js | Deletes legacy all-versions guest start script (consolidation). |
| e2e/all-versions/guest-app/README.md | Deletes legacy all-versions CRA README (consolidation). |
| e2e/all-versions/guest-app/.gitignore | Deletes legacy all-versions ignore file (consolidation). |
| e2e/all-versions/e2e-tests/package.json | Deletes legacy all-versions TestCafe runner package.json (consolidation). |
| e2e/all-versions/e2e-tests/.gitignore | Deletes legacy all-versions test ignore file (consolidation). |
| e2e/.gitignore | Ignores generated app package.json/locks/node_modules and TestCafe artifacts under new layout. |
| CLAUDE.md | Documents new E2E commands and the new setup/run pipeline. |
| .github/workflows/e2e-local-dist.yml | Updates CI to use consolidated e2e/** tree, e2e-setup.mjs, and to start a second guest instance. |
| .github/workflows/e2e-all-versions.yml | Updates CI to use e2e-setup.mjs and consolidated e2e/tests. |
| .claude/commands/e2e.md | Adds a documented one-command E2E run recipe for contributors. |
| .claude/agents/react-best-practices-reviewer.md | Adds a Claude agent definition for React best-practices review workflows. |
You can also share your feedback on Copilot code review. Take the survey.
kokoc
left a comment
There was a problem hiding this comment.
Test works fine locally. May need some changes if we want to run it in headless mode as it opened browser window and offered interactive dialogs
No description provided.