Skip to content

nfroidure/streamtest

Repository files navigation

streamtest

Streams test library

GitHub license

streamtest is a set of utils to test your stream based modules simply.

In fact, this repository's tests is a perfect example of its own usage ;).

Installation

First install streamtest in your project:

npm install --save-dev streamtest

Getting started

Then, use it:

import StreamTest from 'streamtest';

describe('My Stream Lib', () => {

  // here goes your code
  it('should work', async (done) => {
    const [outputStream, resultPromise] = StreamTest.toText();

    StreamTest.fromChunks(['a ', 'chunk', 'and', 'another'])
      .pipe(myTestedStream)
      .pipe(outputStream);

    assert.equal(await resultPromise, 'the text as i should be')
  });

});

Contribute

Feel free to submit us your improvements. To do so, you must accept to publish your code under the MIT license.

To start contributing, first run the following to setup the development environment:

git clone git@github.com:nfroidure/streamtest.git
cd streamtest
npm install

Then, run the tests:

npm test

API

StreamTest : object

Kind: global namespace

StreamTest.fromObjects(objects, timeout) ⇒

Create a readable stream streaming objects each timeout milliseconds and then end. Usefull for testing objectMode based streams.

Kind: static method of StreamTest
Returns: Readable

Param Description
objects Array
timeout number

StreamTest.fromErroredObjects(err, objects, timeout) ⇒

Create a readable stream streaming objects each timeout milliseconds, emit the err error and then end. Usefull for testing objectMode based streams.

Kind: static method of StreamTest
Returns: Readable

Param Description
err Error
objects Object[]
timeout number

StreamTest.fromChunks(chunks, timeout) ⇒

Create a readable stream streaming chunks each timeout milliseconds and then end. Usefull for testing buffer based streams.

Kind: static method of StreamTest
Returns: Readable

Param Description
chunks Buffer[]
timeout number

StreamTest.fromErroredChunks(err, objects, timeout) ⇒

Create a readable stream streaming chunks each timeout milliseconds, emit the err error and then end. Usefull for testing buffer based streams.

Kind: static method of StreamTest
Returns: Readable

Param Description
err Error
objects Object[]
timeout number

StreamTest.toObjects() ⇒

Create a writable stream collecting written objects and a promise that resolves when it finishes with the objects collected.

Kind: static method of StreamTest
Returns: [Writable, Promise]

StreamTest.toChunks() ⇒

Create a writable stream collecting written chunks and a promise that resolves when it finishes with the chunks collected.

Kind: static method of StreamTest
Returns: [Writable, Promise<Buffer[]>]

StreamTest.toText() ⇒

Create a writable stream collecting written text and a promise that resolves when it finishes with the whole text content.

Kind: static method of StreamTest
Returns: [Writable, Promise]

Authors

License

MIT