parrot icon indicating copy to clipboard operation
parrot copied to clipboard

Add ability to use function for status

Open smackfu opened this issue 4 years ago • 3 comments

For more complex mocks, parrot supports passing a function as the body, which can be matched against the request object to return different responses.

See: https://github.com/americanexpress/parrot/blob/main/packages/parrot-core/src/utils/resolveResponse.js#L31

There are use-cases where it would be convenient to return a different http status code for different requests to the same endpoint.

Currently the status field does not support being passed a function:

RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: () => 200
    at ServerResponse.writeHead (_http_server.js:248:11)
    at ServerResponse._implicitHeader (_http_server.js:239:8)
    at write_ (_http_outgoing.js:654:9)
    at ServerResponse.end (_http_outgoing.js:766:5)

smackfu avatar Jan 22 '21 20:01 smackfu

Thanks for opening your first issue. Pull requests are always welcome!

github-actions[bot] avatar Jan 22 '21 20:01 github-actions[bot]

This issue is stale because it has been open 30 days with no activity.

github-actions[bot] avatar Feb 22 '21 00:02 github-actions[bot]

Sorry for the late response on this.

I think it would be good to support this but I'm not sure if having the response body and status both be function is the right way to do it. Should the response itself be a function from which you could return the body and status? I'm definitely open to suggestions.

ghost avatar Mar 04 '21 04:03 ghost