0.2.1 • Published 2 months ago

@sya-ri/echomock v0.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

echomock

npm version License: MIT

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

  1. Start the server:
npx @sya-ri/echomock

# or specify port
npx @sya-ri/echomock 3000
  1. 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!!" }'
  1. Try the mock:
curl -X GET --location "http://localhost:8080/example"
  1. Delete a specific mock:
curl -X DELETE --location "http://localhost:8080/echomock" \
    -H "X-ECHOMOCK-METHOD: GET" \
    -H "X-ECHOMOCK-PATH: /example"
  1. Delete all mocks:
curl -X DELETE --location "http://localhost:8080/echomock/all"

Library Usage

  1. Install as a dev dependency:
npm install -D @sya-ri/echomock
  1. 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.

0.2.1

2 months ago

0.2.0

2 months ago

0.1.1

2 months ago

0.1.0

2 months ago