0.2.1 • Published 2 months ago
@sya-ri/echomock v0.2.1
echomock
A lightweight and flexible API mocking tool that focuses on accurate response handling. Perfect for testing and development environments.
Features
- 🔄 Request Body Echo: Automatically returns request body as response body
- 🎯 Dynamic Headers: Set response headers using
X-ECHOMOCK-RES-<HEADER_NAME>
format - ⏱️ Response Delay: Simulate network latency with
X-ECHOMOCK-DELAY
header - 📝 RESTful API: Manage mocks through simple REST endpoints
- 🚀 Simple Integration: Easy to use in any development or testing environment
- 💻 CLI Support: Start the server directly with
npx @sya-ri/echomock
- 📚 Library Mode: Use as a library in your TypeScript/JavaScript projects
Quick Start
CLI Usage
- Start the server:
npx @sya-ri/echomock
# or specify port
npx @sya-ri/echomock 3000
- Register a mock:
curl -X POST --location "http://localhost:8080/echomock" \
-H "X-ECHOMOCK-METHOD: GET" \
-H "X-ECHOMOCK-PATH: /example" \
-H "X-ECHOMOCK-CODE: 200" \
-H "X-ECHOMOCK-DELAY: 1000" \
-H "X-ECHOMOCK-RES-Content-Type: application/json" \
-d '{ "message": "hello from echomock!!" }'
- Try the mock:
curl -X GET --location "http://localhost:8080/example"
- Delete a specific mock:
curl -X DELETE --location "http://localhost:8080/echomock" \
-H "X-ECHOMOCK-METHOD: GET" \
-H "X-ECHOMOCK-PATH: /example"
- Delete all mocks:
curl -X DELETE --location "http://localhost:8080/echomock/all"
Library Usage
- Install as a dev dependency:
npm install -D @sya-ri/echomock
- Use in your code:
import { serve, registerMock, deleteMock, deleteAllMocks } from "@sya-ri/echomock";
// Start the server
serve(3000);
// Register a mock
await registerMock({
method: "GET",
path: "/example",
code: 200,
delay: 1000, // Delay response by 1 second
headers: {
"Content-Type": "application/json"
},
body: new TextEncoder().encode(JSON.stringify({
message: "hello from echomock!!"
}))
});
// Delete a specific mock
deleteMock("GET", "/example");
// Delete all mocks
deleteAllMocks();
Use Cases
- API Testing: Create predictable test environments
- Development: Mock external services during development
- Integration Testing: Test API integrations without real endpoints
- Load Testing: Simulate various API responses for performance testing
- Network Simulation: Test application behavior under different network conditions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.