zudo-test-wisdom

Type to search...

to open search from anywhere

Tools 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 structureYesYes
User eventsYesYes
CSS computed stylesYesYes
Visual screenshotsYesYes
Console errorsYesYes
Multi-page navigationYesYes
Build outputYes
Responsive viewportsYesYesYes

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-wisdomGet guidance on which testing level to use

Revision History