33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
---
|
|
name: service-interceptor
|
|
description: "Creates API service wrappers that simulate network calls with artificial delays and error rates for robust UI testing (no backend required)."
|
|
license: MIT
|
|
triggers:
|
|
- "create api service"
|
|
- "mock fetch calls"
|
|
- "simulate network delay"
|
|
---
|
|
|
|
# Service Interceptor
|
|
|
|
When to use this skill
|
|
|
|
- Use when UI needs to consume an API-like interface while the backend is absent.
|
|
- Triggered by prompts to mock axios/fetch behavior or to add latency/failure simulation.
|
|
|
|
Instructions
|
|
|
|
1. First Step: Implement `src/services/api.ts` exporting functions (`getPapers`, `getPaperById`, `searchPapers`) that return Promises and optionally use `setTimeout` to simulate delay.
|
|
|
|
2. Second Step: Make the delay configurable; expose a `setMockDelay(ms)` helper and an optional `errorRate` flag for testing error states.
|
|
|
|
3. Third Step: Use mockData fixtures as response payloads and ensure the services return the same shape as a future real API.
|
|
|
|
Examples
|
|
|
|
- `await api.getPapers({ page: 1, pageSize: 10 }) // resolves after 300ms with { items, total }`
|
|
|
|
Notes
|
|
|
|
- Document how to switch to a real API endpoint later by replacing the service implementation or toggling an environment variable.
|