Back to skills
SKILL.md
979 Skill C8810f4f
ASecurityAdd unit tests for a component or function
- 11 stars
- 0 votes
- 0 copies
- 0 views
- Added November 10, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add tools-only/X-Skills --skill 979-skill_c8810f4f --agent claude-codeAre you the author of 979 Skill C8810f4f?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-979-skill-c8810f4f)---
skill: add-test
description: Add unit tests for a component or function
arguments: component or function name
---
# Add Tests: $ARGUMENTS
Create comprehensive unit tests for the specified component or function.
## Process
### 1. Locate Source File
Search in order:
- `components/$ARGUMENTS.tsx` (React component)
- `lib/$ARGUMENTS.ts` (utility function)
- `app/$ARGUMENTS.tsx` (page component)
### 2. Analyze Source
Read the file to identify:
- Exported functions/components
- Props interfaces
- State management
- Event handlers
- Key functionality to test
### 3. Create Test File
Place test adjacent to source: `[name].test.tsx` or `[name].test.ts`
### 4. Generate Tests
**For React components:**
```typescript
import { render, screen, fireEvent } from '@testing-library/react';
import ComponentName from './ComponentName';
describe('ComponentName', () => {
test('renders correctly', () => {
render(<ComponentName />);
expect(screen.getByTestId('component-name')).toBeInTheDocument();
});
test('handles user interaction', () => {
render(<ComponentName />);
fireEvent.click(screen.getByRole('button'));
// assert expected behavior
});
test('handles empty state', () => { /* ... */ });
test('handles error state', () => { /* ... */ });
});
```
**For utility functions:**
```typescript
import { functionName } from './fileName';
describe('functionName', () => {
test('returns expected output', () => {
expect(functionName(input)).toBe(expected);
});
test('handles empty input', () => { /* ... */ });
test('handles edge cases', () => { /* ... */ });
test('throws on invalid input', () => {
expect(() => functionName(invalid)).toThrow();
});
});
```
### 5. Run Tests
```bash
npm test -- $ARGUMENTS.test
```
Fix any failures, then report results.
## Coverage Requirements
- Happy path scenarios
- Edge cases (empty, null, boundary values)
- Error states
- User interactions (for components)
- Accessibility (keyboard navigation)
## Best Practices
- Use `data-testid` for stable selectors
- Mock localStorage if needed
- Tests should be independent and deterministic
- Descriptive test names that explain the scenario
Files in this skill
- README.md
- skill.md
Attribution
Related skills
View all in testing →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.