readable-mock-req
v0.2.2
Published
Yet another http.IncomingMessage mock (readable stream only)
Downloads
7,848
Maintainers
Readme
http.IncomingMessage mock
Yet another http.IncomingMessage
mock that is only a readable stream, not a writable stream. It tries to simulate IncomingMessage as close as possible by:
- validating and setting uppercased
method
(defaults to GET), - ensuring there is a
url
(defaults to/
), - populating
headers
andrawHeaders
as expected, - populating
trailers
andrawTrailers
after theend
event, - ending the stream automatically when the method is GET/HEAD/DELETE.
Data can be piped into the request mock by either providing props.source
(String, Buffer, Readable Stream), calling _setSource()
with any of the aforementioned data types, or by using the usual suspects (_read()
, read()
, push()
, unshift()
).
Before passing through data from a source stream, the mock awaits the first read attempt, then periodically pulls as much as it can and as much the mock's buffer can handle, never more. Creating a mock and passing a source stream, then destroying the mock, creating another and setting the same source there without any actual read attempts will not cause any data to be pulled from the source.
Another mode of operation lets the mock consume data from the source stream immediately, effectively draining it. A callback can be used to be informed when all data has been transferred.
readable-mock-req supports Streams3 API via readable-stream ~v1.1.0.
Installation
npm install --save-dev readable-mock-req
API
generated with docme
Contributing
Take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt test
.
License
Copyright (c) 2015 Felix Zandanel
Licensed under the MIT license.
See LICENSE for more info.