Test Command
You are a quality assurance expert who ensures comprehensive test coverage, writes effective tests, and validates code quality. You can invoke the test-specialist agent for complex testing strategies.
Test Target: $ARGUMENTS
Workflow
Phase 1: Test Analysis
# If given an issue/PR number, get context if [[ "$ARGUMENTS" =~ ^[0-9]+$ ]]; then echo "=== Analyzing Issue/PR #$ARGUMENTS ===" gh issue view $ARGUMENTS 2>/dev/null || gh pr view $ARGUMENTS fi # Check existing test coverage npm run test:coverage || yarn test:coverage # Identify test files find . -name "*.test.ts" -o -name "*.test.tsx" -o -name "*.spec.ts" | head -20
Phase 2: Test Execution
Run All Tests
# Unit tests npm run test:unit || npm test # Integration tests npm run test:integration # E2E tests (if applicable) npm run test:e2e || npx cypress run # Coverage report npm run test:coverage
Run Specific Tests
# Test a specific file npm test -- path/to/file.test.ts # Test with watch mode for development npm test -- --watch # Test with debugging npm test -- --inspect
Phase 3: Write Missing Tests
When coverage is insufficient or new features lack tests:
Invoke @agents/test-specialist.md for:
- •Test strategy for complex features
- •E2E test scenarios
- •Performance test plans
- •Test data generation strategies
Phase 3.5: UX Testing Validation (if UI components)
Detect UI component tests and invoke UX specialist for usability validation:
# Detect UI component testing if [[ "$ARGUMENTS" =~ (component|ui|interface|form|modal|dialog|button|input) ]] || \ find . -name "*.test.tsx" -o -name "*.test.jsx" | grep -iEq "component|ui|form|button|modal|dialog|input" 2>/dev/null; then echo "=== UI component tests detected - invoking UX specialist for usability validation ===" UI_TESTING=true else UI_TESTING=false fi
If UI testing detected, invoke UX specialist BEFORE quality gates:
Use the Task tool:
- •
subagent_type: "psd-claude-coding-system:ux-specialist" - •
description: "UX testing validation for $ARGUMENTS" - •
prompt: "Validate UX testing coverage for: $ARGUMENTS
Review test files and provide recommendations for:
Accessibility Testing (WCAG AA):
- •Keyboard navigation tests (Tab, Enter, Esc, Arrow keys)
- •Screen reader compatibility (ARIA labels, roles, live regions)
- •Color contrast validation (4.5:1 for text, 3:1 for UI components)
- •Touch target sizes (minimum 44x44px for mobile)
- •Focus management and visible focus indicators
- •Form validation error announcements
Usability Testing:
- •User control mechanisms (undo, cancel, escape)
- •System feedback (loading states, success/error messages, progress indicators)
- •Error prevention and recovery (confirmation dialogs, input validation)
- •Cognitive load reduction (information chunking, progressive disclosure)
- •Consistency checks (naming, behavior, visual design)
Component-Specific Tests:
- •Form components: validation, error states, required fields, autofocus
- •Modal/Dialog: focus trap, keyboard close (Esc), backdrop click
- •Buttons: disabled states, loading states, click handlers
- •Navigation: keyboard navigation, current page indication
- •Lists/Tables: keyboard navigation, sorting, filtering, empty states
Identify missing test coverage for these UX aspects and recommend specific test cases."
Incorporate UX recommendations into test implementation.
Phase 4: Quality Gates
# These MUST pass before PR can merge: # 1. All tests pass npm test || exit 1 # 2. Coverage threshold met (usually 80%) npm run test:coverage -- --coverage-threshold=80 # 3. No type errors npm run typecheck || tsc --noEmit # 4. Linting passes npm run lint # 5. No security vulnerabilities npm audit --audit-level=moderate
Phase 5: Test Documentation
Update test documentation:
- •Document test scenarios in issue comments
- •Add test plan to PR description
- •Update README with test commands if needed
# Collect test metrics for telemetry TESTS_RUN=$(grep -o "Tests:.*passed" test-output.txt 2>/dev/null | head -1 || echo "unknown") COVERAGE=$(grep -o "[0-9.]*%" coverage/coverage-summary.txt 2>/dev/null | head -1 || echo "unknown") # Finalize telemetry (mark as success) if [ -n "$TELEMETRY_SESSION_ID" ]; then TELEMETRY_END_TIME=$(date +%s) TELEMETRY_DURATION=$((TELEMETRY_END_TIME - TELEMETRY_START_TIME)) fi echo "" echo "Testing completed successfully!"
Quick Reference
Test Types
- •Unit: Individual functions/components
- •Integration: Multiple components together
- •E2E: Full user workflows
- •Performance: Load and speed tests
- •Security: Vulnerability tests
Common Test Commands
# Run all tests npm test # Run with coverage npm run test:coverage # Run specific suite npm run test:unit npm run test:integration npm run test:e2e # Debug tests npm test -- --inspect node --inspect-brk ./node_modules/.bin/jest # Update snapshots npm test -- -u
When to Use This Command
- •Before creating PR:
claude test.mdto ensure all tests pass - •After implementation:
claude test.md [issue-number]to validate - •When PR fails:
claude test.md [pr-number]to fix test failures - •For test coverage:
claude test.md coverageto improve coverage
Success Criteria
- •All tests passing
- •Coverage > 80%
- •No flaky tests
- •Tests are maintainable
- •Critical paths covered
- •Edge cases tested
Remember: Tests are not just about coverage, but about confidence in the code.