Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
This skill should be used when the user asks to "generate tests", "write unit tests", "analyze test coverage", "scaffold E2E tests", "set up Playwright", "configure Jest", "implement testing patterns", or "improve test quality". Use for React/Next.js testing with Jest, React Testing Library, and Playwright.
This skill should be used when the user asks to "generate tests", "write unit tests", "analyze test coverage", "scaffold E2E tests", "set up Playwright", "configure Jest", "implement testing patterns", or "improve test quality". Use for React/Next.js testing with Jest, React Testing Library, and Playwright.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Test automation, coverage analysis, and quality assurance patterns for React and Next.js applications.
# Generate Jest test stubs for React components python scripts/test_suite_generator.py src/components/ --output __tests__/ # Analyze test coverage from Jest/Istanbul reports python scripts/coverage_analyzer.py coverage/coverage-final.json --threshold 80 # Scaffold Playwright E2E tests for Next.js routes python scripts/e2e_test_scaffolder.py src/app/ --output e2e/
Scans React/TypeScript components and generates Jest + React Testing Library test stubs with proper structure. Input: Source directory containing React components Output: Test files with describe blocks, render tests, interaction tests Usage: # Basic usage - scan components and generate tests python scripts/test_suite_generator.py src/components/ --output __tests__/ # Include accessibility tests python scripts/test_suite_generator.py src/ --output __tests__/ --include-a11y # Generate with custom template python scripts/test_suite_generator.py src/ --template custom-template.tsx Supported Patterns: Functional components with hooks Components with Context providers Components with data fetching Form components with validation
Parses Jest/Istanbul coverage reports and identifies gaps, uncovered branches, and provides actionable recommendations. Input: Coverage report (JSON or LCOV format) Output: Coverage analysis with recommendations Usage: # Analyze coverage report python scripts/coverage_analyzer.py coverage/coverage-final.json # Enforce threshold (exit 1 if below) python scripts/coverage_analyzer.py coverage/ --threshold 80 --strict # Generate HTML report python scripts/coverage_analyzer.py coverage/ --format html --output report.html
Scans Next.js pages/app directory and generates Playwright test files with common interactions. Input: Next.js pages or app directory Output: Playwright test files organized by route Usage: # Scaffold E2E tests for Next.js App Router python scripts/e2e_test_scaffolder.py src/app/ --output e2e/ # Include Page Object Model classes python scripts/e2e_test_scaffolder.py src/app/ --output e2e/ --include-pom # Generate for specific routes python scripts/e2e_test_scaffolder.py src/app/ --routes "/login,/dashboard,/checkout"
Use when setting up tests for new or existing React components. Step 1: Scan project for untested components python scripts/test_suite_generator.py src/components/ --scan-only Step 2: Generate test stubs python scripts/test_suite_generator.py src/components/ --output __tests__/ Step 3: Review and customize generated tests // __tests__/Button.test.tsx (generated) import { render, screen, fireEvent } from '@testing-library/react'; import { Button } from '../src/components/Button'; describe('Button', () => { it('renders with label', () => { render(<Button>Click me</Button>); expect(screen.getByRole('button', { name: "click-mei-tobeinthedocument" }); it('calls onClick when clicked', () => { const handleClick = jest.fn(); render(<Button onClick={handleClick}>Click</Button>); fireEvent.click(screen.getByRole('button')); expect(handleClick).toHaveBeenCalledTimes(1); }); // TODO: Add your specific test cases }); Step 4: Run tests and check coverage npm test -- --coverage python scripts/coverage_analyzer.py coverage/coverage-final.json
Use when improving test coverage or preparing for release. Step 1: Generate coverage report npm test -- --coverage --coverageReporters=json Step 2: Analyze coverage gaps python scripts/coverage_analyzer.py coverage/coverage-final.json --threshold 80 Step 3: Identify critical paths python scripts/coverage_analyzer.py coverage/ --critical-paths Step 4: Generate missing test stubs python scripts/test_suite_generator.py src/ --uncovered-only --output __tests__/ Step 5: Verify improvement npm test -- --coverage python scripts/coverage_analyzer.py coverage/ --compare previous-coverage.json
FileContainsUse Whenreferences/testing_strategies.mdTest pyramid, testing types, coverage targets, CI/CD integrationDesigning test strategyreferences/test_automation_patterns.mdPage Object Model, mocking (MSW), fixtures, async patternsWriting test codereferences/qa_best_practices.mdTestable code, flaky tests, debugging, quality metricsImproving test quality
// Preferred (accessible) screen.getByRole('button', { name: "submiti" screen.getByLabelText(/email/i) screen.getByPlaceholderText(/search/i) // Fallback screen.getByTestId('custom-element')
// Wait for element await screen.findByText(/loaded/i); // Wait for removal await waitForElementToBeRemoved(() => screen.queryByText(/loading/i)); // Wait for condition await waitFor(() => { expect(mockFn).toHaveBeenCalled(); });
import { rest } from 'msw'; import { setupServer } from 'msw/node'; const server = setupServer( rest.get('/api/users', (req, res, ctx) => { return res(ctx.json([{ id: 1, name: "john" }])); }) ); beforeAll(() => server.listen()); afterEach(() => server.resetHandlers()); afterAll(() => server.close());
// Preferred page.getByRole('button', { name: "submit" }) page.getByLabel('Email') page.getByText('Welcome') // Chaining page.getByRole('listitem').filter({ hasText: 'Product' })
module.exports = { coverageThreshold: { global: { branches: 80, functions: 80, lines: 80, statements: 80, }, }, };
# Jest npm test # Run all tests npm test -- --watch # Watch mode npm test -- --coverage # With coverage npm test -- Button.test.tsx # Single file # Playwright npx playwright test # Run all E2E tests npx playwright test --ui # UI mode npx playwright test --debug # Debug mode npx playwright codegen # Generate tests # Coverage npm test -- --coverage --coverageReporters=lcov,json python scripts/coverage_analyzer.py coverage/coverage-final.json
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.