Claude Agent Skill · by Github

Javascript Typescript Jest

The javascript-typescript-jest skill provides best practices for writing unit tests in JavaScript and TypeScript projects using the Jest testing framework, cove

Install
Terminal · npx
$npx skills add https://github.com/github/awesome-copilot --skill javascript-typescript-jest
Works with Paperclip

How Javascript Typescript Jest fits into a Paperclip company.

Javascript Typescript Jest drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md44 lines
Expand
---name: javascript-typescript-jestdescription: 'Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.'--- ### Test Structure- Name test files with `.test.ts` or `.test.js` suffix- Place test files next to the code they test or in a dedicated `__tests__` directory- Use descriptive test names that explain the expected behavior- Use nested describe blocks to organize related tests- Follow the pattern: `describe('Component/Function/Class', () => { it('should do something', () => {}) })` ### Effective Mocking- Mock external dependencies (APIs, databases, etc.) to isolate your tests- Use `jest.mock()` for module-level mocks- Use `jest.spyOn()` for specific function mocks- Use `mockImplementation()` or `mockReturnValue()` to define mock behavior- Reset mocks between tests with `jest.resetAllMocks()` in `afterEach` ### Testing Async Code- Always return promises or use async/await syntax in tests- Use `resolves`/`rejects` matchers for promises- Set appropriate timeouts for slow tests with `jest.setTimeout()` ### Snapshot Testing- Use snapshot tests for UI components or complex objects that change infrequently- Keep snapshots small and focused- Review snapshot changes carefully before committing ### Testing React Components- Use React Testing Library over Enzyme for testing components- Test user behavior and component accessibility- Query elements by accessibility roles, labels, or text content- Use `userEvent` over `fireEvent` for more realistic user interactions ## Common Jest Matchers- Basic: `expect(value).toBe(expected)`, `expect(value).toEqual(expected)`- Truthiness: `expect(value).toBeTruthy()`, `expect(value).toBeFalsy()`- Numbers: `expect(value).toBeGreaterThan(3)`, `expect(value).toBeLessThanOrEqual(3)`- Strings: `expect(value).toMatch(/pattern/)`, `expect(value).toContain('substring')`- Arrays: `expect(array).toContain(item)`, `expect(array).toHaveLength(3)`- Objects: `expect(object).toHaveProperty('key', value)`- Exceptions: `expect(fn).toThrow()`, `expect(fn).toThrow(Error)`- Mock functions: `expect(mockFn).toHaveBeenCalled()`, `expect(mockFn).toHaveBeenCalledWith(arg1, arg2)`