0.2.2 • Published 9 years ago

readable-mock-req v0.2.2

Weekly downloads
75
License
MIT
Repository
github
Last release
9 years ago

http.IncomingMessage mock

Build Status Coverage Status Dependency Status devDependency Status

NPM

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 and rawHeaders as expected,
  • populating trailers and rawTrailers after the end 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.