1.0.5 • Published 11 months ago

@gaonengwww/mock-server v1.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

mock server

A streamlined HTTP mock server

Usages

  1. Install
pnpm add @gaonengwww/mock-server
  1. Use createMockServer function
// index.js

const {createMockServer} = require('@gaonengwww/mock-server');

createMockServer({
  mocks:[
    {
      url: '/api/test',
      response: ()=>{
        return {foo: 'bar'}
      }
    }
  ]
})
  1. run index.js
node index.js
  1. send request
curl -vv http://localhost:8848/api/test

# * Connected to localhost (127.0.0.1) port 8848 (#0)
# > GET /api/test HTTP/1.1
# > Host: localhost:8848
# > User-Agent: curl/7.88.1
# > Accept: */*
# > 
# < HTTP/1.1 200 OK
# < Content-Type: application/json
# < Date: Mon, 29 Jul 2024 05:47:29 GMT
# < Connection: keep-alive
# < Keep-Alive: timeout=5
# < Transfer-Encoding: chunked
# <
# {"foo":"bar"}* Connection #0 to host localhost left intact

Parse Body

You can use body get post body

const {createMockServer} = require('@gaonengwww/mock-server');

createMockServer({
  mocks:[
    {
      method: 'post',
      url: '/api/test',
      response: ({body})=>{
        console.log(`Hello ${body.name}!`);
        return {};
      }
    }
  ]
})
curl http://localhost:8848/api/test -X POST --data '{"name":"Joe"}' --header "Content-Type: application/json"
# server side should output "hello Joe!"

Different method

const {createMockServer} = require('@gaonengwww/mock-server');

createMockServer({
  mocks:[
    {
      method: 'post',
      url: '/api/test',
      response: ({body})=>{
        console.log(`Hello ${body.name}!`);
        return {};
      }
    },
    {
      url: '/api/test',
      response: ()=>{
        return {foo: 'bar'}
      }
    }
  ]
})
curl http://localhost:8848/api/test -X POST --data '{"name":"Joe"}' --header "Content-Type: application/json"
# server side should output "hello Joe!"
curl http://localhost:8848/api/test
# {"foo":"bar"}

Custom status code

// index.js

const {createMockServer} = require('@gaonengwww/mock-server');

createMockServer({
  mocks:[
    {
      url: '/api/test',
      response: ()=>{
        return {foo: 'bar'}
      },
      statusCode: 404
    }
  ]
})
curl http://localhost:8848/api/test -vv

# > GET /api/test HTTP/1.1
# > Host: localhost:8848
# > User-Agent: curl/7.55.1
# > Accept: */*
# >
# < HTTP/1.1 404 Not Found
# < Content-Type: application/json
# < Date: Mon, 29 Jul 2024 06:00:37 GMT
# < Connection: keep-alive
# < Keep-Alive: timeout=5
# < Transfer-Encoding: chunked
# <
# {"foo":"bar"}* Connection #0 to host localhost left intact

Timeout

const {createMockServer} = require('@gaonengwww/mock-server');

createMockServer({
  mocks:[
    {
      method:'get',
      timeout: 1500,
      url: '/api/test',
      response: ()=>{
        return {foo:'bar'};
      }
    }
  ]
})
curl -o /dev/null -s -w "%{time_starttransfer} - %{time_total}" http://localhost:8848/api/test
1.511512 - 1.51158

Cli

mock-server -h

license

MIT

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago