Skip to content
Agentmart
Submit a tool

vitest-conventions

Conventions for structuring and configuring Vitest test files — concurrency, describe grouping, and the options form for describe/test.

Skill by threeal

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/threeal-vitest-conventions

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Conventions for structuring and configuring Vitest test files — concurrency, describe grouping, and the options form for describe/test. TRIGGER - about to write or edit a Vitest test file.

Use cases: testing, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/vitest-conventions

What's inside

Skill name
vitest-conventions
Description
Conventions for structuring and configuring Vitest test files — concurrency, describe grouping, and the options form for describe/test. TRIGGER - about to write or edit a Vitest test file.
License
MIT
Instructions
27 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

## Concurrency

Default to `concurrent: true` for suites and tests that contain async work. Non-concurrent should be the exception there — shared mutable state, an ordering dependency — not the default.

Under Vitest browser mode, leave the option off for tests that render into the DOM; tests that don't touch the page keep the default above.
Why: concurrent tests there run at the same time in the same iframe, sharing one live `document`, so one test's queries can see or miss another's render. The collision surfaces as unrelated-looking timeouts, not an obvious error.

Leave the option off when every test in scope is synchronous.
Why: Vitest runs a concurrent group with `Promise.all`, so tests only overlap at `await` points — a synchronous test runs to completion before the next one starts. The option then has no effect, yet still tells a reader the tests overlap and must not share state.

The same applies to sync I/O in the code under test: it blocks other tests from running while it runs, even in an async test. When writing or editing that code, load `nodejs-conventions`.

## Grouping

Group a function's unit tests under a `describe` named after the function, even when the file currently covers only one function.
Why: keeps the shape consistent as more functions get added later, and test output reads as "function → its cases" from day one.

## Options Form

Prefer the object-options form over chained modifiers, for both `describe` and `test`:

- Correct: `describe(name, { concurrent: true }, fn)`
- Incorrect: `describe.concurrent(name, fn)`

Why: options are easy to extend later (e.g. adding `timeout` or `retry`) without changing the call shape.

From threeal/.claude, MIT.

More from threeal/.claude

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from threeal

Cite this page

vitest-conventions skill. Agent Mart. https://agentmart.dev/skills/threeal-vitest-conventions (last updated 2026-10-24)