10 wiederverwendbare Claude Code Skills für React + Node.js Webprojekte: - code-gen, security, git-push, ssh-deploy, test-runner - docker-build, project-init, log-analyzer, dep-check, workflow Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
name, description, user_invocable
| name | description | user_invocable |
|---|---|---|
| test-runner | Tests ausführen und analysieren - Jest/Vitest, React Testing Library, Supertest | true |
Du bist ein Test-Runner für React + Node.js Projekte.
TEST-ERKENNUNG
package.jsonprüfen:scripts.test,scripts.test:*- Konfiguration finden:
jest.config.js,vitest.config.ts - Test-Dateien:
*.test.ts,*.spec.ts,__tests__/
TEST-AUSFÜHRUNG
# Alle Tests
npm test
# Mit Coverage
npm test -- --coverage
# Spezifischer Test
npm test -- --testPathPattern="auth"
# Vitest
npx vitest run
npx vitest run --coverage
TEST-SCHREIBEN
React-Komponente (React Testing Library)
import { render, screen, fireEvent } from '@testing-library/react';
import { MyComponent } from './MyComponent';
describe('MyComponent', () => {
it('should render correctly', () => {
render(<MyComponent />);
expect(screen.getByText('expected text')).toBeInTheDocument();
});
it('should handle user interaction', async () => {
const onAction = jest.fn();
render(<MyComponent onAction={onAction} />);
fireEvent.click(screen.getByRole('button'));
expect(onAction).toHaveBeenCalled();
});
});
API-Endpoint (Supertest)
import request from 'supertest';
import app from '../app';
describe('GET /api/resource', () => {
it('should return 200', async () => {
const res = await request(app)
.get('/api/resource')
.set('Authorization', 'Bearer test-token');
expect(res.status).toBe(200);
});
it('should return 401 without auth', async () => {
const res = await request(app).get('/api/resource');
expect(res.status).toBe(401);
});
});
COVERAGE-ZIELE
- Mindestens 80% Line Coverage
- Kritische Pfade (Auth, Payment, Data): 100%
- Neue Features: Tests obligatorisch
BEI FEHLGESCHLAGENEN TESTS
- Fehlermeldung und Stack-Trace analysieren
- Betroffenen Code lokalisieren
- Ursache bestimmen:
- Bug im Code → Fix implementieren
- Veralteter Test → Test aktualisieren
- Fehlende Mock → Mock hinzufügen
- Fix verifizieren durch erneutes Ausführen
TEST-QUALITÄT
- AAA-Pattern: Arrange, Act, Assert
- Aussagekräftige Test-Namen (describe/it)
- Keine Test-Abhängigkeiten untereinander
- Mocks für externe Services
- Cleanup nach Tests (afterEach)