importModule does not work with @vitest/coverage-c8@0.29.8
dteoh opened this issue · comments
Describe the bug
I'm not sure which repo is ultimately responsible for this issue, so let me report this here.
I suddenly started running into TypeError: coverageModule.getProvider is not a function
when trying to generate coverage with vitest. Let me just skip straight to the investigation results.
It seems like importModule
only considers an import to be ESM if the exported object has a truthy __esModule
property. Reference: https://github.com/antfu/local-pkg/blob/main/index.mjs#L20
When I look at the code and dumped the module object during debugging, the module object was found, but the default export doesn't have that property. Reference: https://unpkg.com/browse/@vitest/coverage-c8@0.29.8/dist/index.js
After downgrading @vitest/coverage-c8
to 0.29.7 it works again.
Reproduction
I hope my explanation is enough.
System Info
System:
OS: macOS 12.6.2
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 20.13 MB / 16.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.15.0 - ~/.asdf/installs/nodejs/18.15.0/bin/node
npm: 9.5.0 - ~/.asdf/plugins/nodejs/shims/npm
Browsers:
Chrome: 111.0.5563.146
Firefox: 111.0.1
Safari: 16.3
Safari Technology Preview: 16.4
Used Package Manager
pnpm
Validations
- Follow our Code of Conduct
- Read the Contributing Guide.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
- The provided reproduction is a minimal reproducible of the bug.