solidjs / solidjs/solid-vite-plugin
Test environment detection doesn't consider Vitest workspaces
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 520
- Forks
- 70
- Avg merge
- 23h 35m
- Merged PRs (30d)
- 39
Description
Hello! I am integrating the new Vitest Browser mode into a project using Solid. Their guide suggests that if you want to use it alongside other test environments, you should configure it using workspaces.
The Solid Vite plugin does not appear to read the user test.workspace configuration and defaults to jsdom.
// ...
const userTest = (userConfig as any).test ?? {};
const test = {} as any;
if (userConfig.mode === 'test') {
// ...
if (!userTest.environment && !options.ssr) {
test.environment = 'jsdom';
}
// ...
Which results on being prompted to install jsdom each time
Reproduction
I made a quick reproduction here.
Workaround
My current workaround is to do this on my vite.config.ts:
import { defineConfig } from "vite"
import solid from "vite-plugin-solid"
import tsConfigPaths from "vite-tsconfig-paths"
export default defineConfig({
plugins: [tsConfigPaths(), solid()],
test: {
// Workaround for Solid Vite plugin. Get's superseeded by `workspace` config
environment: "node",
workspace: [
{
extends: true,
test: {
include: ["**/*.test.{ts,tsx}"],
name: "Node.js",
environment: "node",
},
},
{
extends: true,
test: {
include: ["**/*.test.dom.{ts,tsx}"],
browser: {
enabled: true,
headless: true,
ui: false,
provider: "playwright",
instances: [
{
browser: "chromium",
name: "DOM",
},
],
},
},
},
],
},
})
Could the Solid Vite plugin also check the user test.workspace configuration? 🙂 I can draft a PR if the request makes sense
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at src/index.ts lines 213-224 and compare the plugin's test-environment detection with the test.workspace configuration in the linked reproduction. Check that workspace-based environments are respected and that the workaround in vite.config.ts is no longer needed, including avoiding the repeated jsdom installation prompt.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vite
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100