Skip to main content

testing-guidelines

Testing conventions for divine-web. Load when writing or modifying tests, or when verifying changes with Vitest or Playwright.

Informações da origem

Repositório
divinevideo/divine-web
Última atividade na origem
19 de maio de 2026 às 05:26
Idioma detectado do SKILL.md
inglês
Estrelas
50
Forks
29

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
testing-guidelines
description
Testing conventions for divine-web. Load when writing or modifying tests, or when verifying changes with Vitest or Playwright.
# Testing Guidelines ## Frameworks and Setup Unit tests use Vitest with jsdom. Component tests use `@testing-library/react`. Global setup lives in `src/test/setup.ts`. Test files colocate with source: `*.test.ts` for utilities, `*.test.tsx` for components. ## Running Tests - `npm run test` runs type-check, lint, vitest, and build. Use this before pushing. - `vitest run` for tests only. - `vitest` for watch mode during development. - `npm run test:visual` runs Playwright visual regression tests. - `npm run test:visual:update` updates visual snapshots. ## Assertion Style Favor user-facing assertions: `getByRole`, `getByText`, `getByLabelText`, `getByPlaceholderText`. Query by what the user sees and interacts with. Avoid testing implementation details. No direct state access. No querying by `data-testid` unless no user-facing alternative exists. ## Mocking Mock browser APIs (`window.location`, `fetch`, `IntersectionObserver`, etc.) as needed. Use `vi.fn()` for spies and `vi.mock()` for module mocks. Keep mocks minimal and scoped to the test file. Reset mocks between tests with `vi.restoreAllMocks()` or per-test cleanup. ## Determinism Tests must be deterministic. No relying on real timers, network calls, or shared mutable state. Use `vi.useFakeTimers()` for time-dependent logic. Isolate each test so it can run independently in any order. ## Rules - Do not commit failing tests. Fix before pushing. - Add or update tests alongside any feature change or bug fix. Tests are not optional. - If a test is temporarily skipped, it must have a linked issue: `it.skip('description #123')`.
Ver no GitHub