zudo-test-wisdom
GitHub repository

Type to search...

to open search from anywhere

Tools Quick Reference

Quick reference of tools and commands for each testing level.

Tools by Testing Level

LevelToolsInstallRun Command
1vitestpnpm add -D vitestpnpm vitest
1jestpnpm add -D jestpnpm jest
2vitest + jsdompnpm add -D vitest jsdompnpm vitest
2vitest + happy-dompnpm add -D vitest happy-dompnpm vitest
2@testing-library/reactpnpm add -D @testing-library/react(used in tests)
3vitest (reading built files)pnpm add -D vitestpnpm build && pnpm vitest --project build
4Playwrightpnpm add -D @playwright/testnpx playwright test
4headless-browser(Claude Code skill)/headless-browser
5verify-ui(Claude Code skill)/verify-ui
5headless-browser(Claude Code skill)/headless-browser

Tool Capabilities Matrix

Capabilityvitestvitest+jsdomPlaywrightverify-uiheadless-browser
Pure function testingYesYes------
DOM structure--YesYes----
User events--YesYes----
CSS computed styles----YesYes--
Visual screenshots----Yes--Yes
Console errors----Yes--Yes
Multi-page navigation----Yes--Yes
Build outputYes--------
Responsive viewports----YesYesYes

Vitest Configuration Quick Reference

Minimal unit test setup

// vitest.config.ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    include: ["src/**/*.test.ts"],
  },
});

Component test setup (jsdom)

// vitest.config.ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    environment: "jsdom",
    include: ["src/**/*.test.tsx"],
    setupFiles: ["./test-setup.ts"],
  },
});

Workspace setup (multiple test types)

// vitest.workspace.ts
import { defineWorkspace } from "vitest/config";

export default defineWorkspace([
  {
    test: { name: "unit", include: ["src/**/*.test.ts"], environment: "node" },
  },
  {
    test: {
      name: "component",
      include: ["src/**/*.test.tsx"],
      environment: "jsdom",
    },
  },
  {
    test: {
      name: "build",
      include: ["tests/build/**/*.test.ts"],
      environment: "node",
    },
  },
]);

Playwright Configuration Quick Reference

Basic setup

// playwright.config.ts
import { defineConfig } from "@playwright/test";

export default defineConfig({
  testDir: "./e2e",
  use: {
    baseURL: "http://localhost:3000",
  },
  webServer: {
    command: "pnpm dev",
    port: 3000,
    reuseExistingServer: !process.env.CI,
  },
});

WebKit-only (for Tauri)

// playwright.config.ts
import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  projects: [
    { name: "webkit", use: { ...devices["Desktop Safari"] } },
  ],
});

Production build testing

// playwright.config.ts
import { defineConfig } from "@playwright/test";

export default defineConfig({
  webServer: {
    command: "pnpm build && pnpm preview",
    port: 4173,
    reuseExistingServer: !process.env.CI,
  },
});

Claude Code Skill Commands

CommandLevelPurpose
/headless-browser4, 5Take screenshots, check console errors, interact with pages
/verify-ui5Assert computed CSS values deterministically
/test-wisdom--Get guidance on which testing level to use

Revision History

Takeshi TakatsudoCreated: 2026-04-04T07:11:52+09:00Updated: 2026-06-17T02:20:40+09:00