Skip to content

refactor(e2e): consolidate e2e test infrastructure into single directory tree#128

Merged
fe-lix- merged 9 commits intomainfrom
simplifying-e2e-tests
Mar 19, 2026
Merged

refactor(e2e): consolidate e2e test infrastructure into single directory tree#128
fe-lix- merged 9 commits intomainfrom
simplifying-e2e-tests

Conversation

@fe-lix-
Copy link
Contributor

@fe-lix- fe-lix- commented Mar 19, 2026

No description provided.

fe-lix- and others added 4 commits March 19, 2026 14:06
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>
Copilot AI review requested due to automatic review settings March 19, 2026 13:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.mjs and scripts/e2e-run.mjs to generate app package.json from templates, install deps, inject local SDK builds, and orchestrate local E2E runs.
  • Replaced the prior e2e/local-dist/** and e2e/all-versions/** structures with consolidated e2e/host-app, e2e/guest-app, and e2e/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.

fe-lix- and others added 2 commits March 19, 2026 14:27
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>
Copilot AI review requested due to automatic review settings March 19, 2026 13:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.mjs to generate app package.json from 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-dist and all-versions assets 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 assumes extensions is always an array. In this file useExtensions is currently destructured with a default of {}; if extensions were ever undefined (e.g. due to an error path or future refactor), extensions.length will be undefined and 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.

fe-lix- and others added 2 commits March 19, 2026 14:58
- 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>
Copilot AI review requested due to automatic review settings March 19, 2026 14:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, and scripts/e2e-dev.mjs to generate app package.json files from templates, install deps, inject local SDK dist/, and orchestrate TestCafe runs.
  • Consolidates E2E apps/tests into e2e/host-app, e2e/guest-app, e2e/tests, removing the legacy e2e/local-dist and e2e/all-versions app trees.
  • Expands Jest config to treat .tsx as ESM and to include *.test.tsx in the uix-host-react Jest project; adds/updates E2E scenarios and unit coverage for extensionsListCallback.

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.

Copy link
Contributor

@kokoc kokoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@fe-lix- fe-lix- merged commit 72e79c9 into main Mar 19, 2026
4 checks passed
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.

3 participants