Description
Reproduction example
https://github.com/remcovaes/web-test-runer-with-user-event
Prerequisites
- Clone repo
https://github.com/remcovaes/web-test-runer-with-user-event
npm install
- You might have to initialize Playwright
npm run test
Expected behavior
Working library
Actual behavior
the following error:
SyntaxError: The requested module './../../../../../dom/dist/helpers.js' does not provide an export named 'getWindowFromNode'
User-event version
14.4.3
Environment
Testing Library framework:
JS framework: none
Test environment:
- @web/test-runner v0.14.0
- @web/test-runner-playwright v0.8.10
DOM implementation: Running in a chromium
Additional context
See the file @testing-library/user-event/dist/esm/setup/setup.js
and import import '@testing-library/dom/dist/helpers.js';
.
This will work for commonjs as the file that is import using a deep import is commonjs. In the @web/test-runner, rollup and esbuild plugins are used to bundle (technically not actual plugins, but they work similar). Doing deep imports of commonjs files, throws the build of, causing the error as described above.
Possible fix is to remove all deep import from @testing-library/user-event and only import the stuff @testing-library/dom exposes via the main
and module
in the package.json
. This will make sure that bundlers are able to pick the correct version.