SuperAPI AI Directory

jest-expert

Testing & quality

View repository

Updated 10-16 08:03

About this skill

Jest Expert

Core Concepts

Jest Framework

  • Zero Config - Works out of the box
  • Snapshot Testing - UI component testing
  • Mocking - Functions, modules, and timers
  • Code Coverage - Built-in coverage reports
  • Watch Mode - Interactive test runner
  • Parallel Testing - Fast test execution

Test Structure

  • describe/it - Test organization
  • Matchers - Assertion library
  • Setup/Teardown - beforeEach, afterEach, beforeAll, afterAll
  • Mock Functions - jest.fn(), jest.spyOn()
  • Async Testing - Promises, async/await
  • Test Lifecycle - Hooks and execution order

Advanced Features

  • Custom Matchers - Extend expect
  • Module Mocking - Mock entire modules
  • Timer Mocks - Control time in tests
  • Manual Mocks - mocks directory
  • Configuration - jest.config.js
  • Transformers - Babel, TypeScript support

Best Practices

Test Organization

  • One test file per source file
  • Group related tests with describe
  • Use descriptive test names
  • Follow AAA pattern (Arrange, Act, Assert)
  • Keep tests simple and focused
  • Test behavior, not implementation

Mocking

  • Mock external dependencies
  • Use jest.fn() for function mocks
  • Clear mocks between tests
  • Mock at the right level
  • Avoid over-mocking
  • Document mock behavior

Assertions

  • Use specific matchers
  • One assertion per test when possible
  • Test edge cases
  • Verify error conditions
  • Use snapshots judiciously
  • Provide clear failure messages

Coverage

  • Aim for high coverage (80%+)
  • Don't chase 100% coverage
  • Focus on critical paths
  • Test edge cases and errors
  • Exclude generated code
  • Review coverage reports

Anti-Patterns

Common Mistakes

  • Testing implementation details
  • Too many assertions in one test
  • Sharing state between tests
  • Not cleaning up after tests
  • Ignoring async/await
  • Hard-coding test data

Mocking Issues

  • Over-mocking everything
  • Not resetting mocks
  • Mocking too deep
  • Inconsistent mock data
  • Forgetting to restore mocks
  • Mocking what you don't need

Test Design Problems

  • Tests depending on execution order
  • Flaky tests due to timing
  • No arrange-act-assert structure
  • Testing multiple things at once
  • Duplicate test code
  • Poor test names

Reference Documentation

Detailed material lives alongside this skill and is read on demand:

  • Implementation Examples — Basic Unit Tests, Testing Async Code, Mocking and Spies, Snapshot Testing, Testing React Components with React Testing Library, Timer Mocks, Custom Matchers, Configuration (jest.config.js)

Resources

Official Documentation

Learning Resources

Tools & Extensions

Community Resources