solidjs / solidjs/solid-vite-plugin
Check for `@testing-library/jest-dom` doesn't guarantee it's safe to use as `setupFiles` in Vitest
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 520
- Fork
- 70
- Merge medio
- 23h 35m
- PR unite (30g)
- 39
Descrizione
This check doesn't guarantee that passing '@testing-library/jest-dom/vitest' as setupFiles to Vitest is safe.
The current check:
only verifies that eslint-plugin-solid itself can resolve @testing-library/jest-dom/vitest.
It does not guarantee that Vitest can safely use it as a setupFiles entry.
Problem
In my project (using pnpm), I hit a false positive:
storybookdepends directly on@testing-library/jest-dom.storybook-solidjs-vitedepends onvite-plugin-solidvite-plugin-solidlists@testing-library/jest-domas an optional peer dependency.- Because of
pnpm’s virtual store, both end up colocated such thatrequire.resolve("@testing-library/jest-dom/vitest")fromvite-plugin-solidsucceeds.
However, my project itself doesn’t depend on @testing-library/jest-dom, since I only use Vitest with vite-plugin-solid for reactivity tests (no DOM tests).
When Vitest parses the config, it can resolve vite-plugin-solid, but it cannot resolve the automatically added @testing-library/jest-dom/vitest import. This breaks the setup.
Minimal Reproduction
- Create an empty project
pnpm init
pnpm add -D vitest vite vite-plugin-solid
- Add a vitest.config.js with
export default defineConfig({
plugins: [solid()],
test: {
environment: "node",
},
});
And a simple test file (it should run).
- Reinstall dependencies, this time with a transitive dependency on @testing-library/jest-dom:
pnpm add -D storybook storybook-solidjs-vite
- Run the test, it should now fail with "Failed to load url .../@testing-library/jest-dom/vitest".
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Start with src/index.ts around lines 182-191, then run the pnpm minimal reproduction with Vitest described in the issue. Compare behavior with and without the transitive storybook dependency, and verify that the empty Solid/Vitest project still runs when the package is not a direct dependency.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- testing
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100