Skip to content
Streams test toolbelt
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github build(Dependencies): Update meta package Dec 3, 2017
src No longer mutate the passed-in array within fromObjects, fromErroredO… Dec 4, 2017
tests No longer mutate the passed-in array within fromObjects, fromErroredO… Dec 4, 2017
.codeclimate.yml build(Dependencies): Update meta package Dec 3, 2017
.editorconfig build(Dependencies): Update meta package Dec 3, 2017
.eslintrc.js build(Dependencies): Update meta package Dec 3, 2017
.gitattributes
.gitignore chore(Metapak): Update `metapak-nfroidure` Jun 9, 2018
.npmignore First cmmit Feb 8, 2015
.prettierrc.js chore(Metapak): Update `metapak-nfroidure` Jun 9, 2018
.travis.yml
CHANGELOG.md 1.2.4 Jun 9, 2018
LICENSE Add metapak-nfroidure Feb 5, 2017
README.md Fix README headings renderization Aug 17, 2019
package-lock.json
package.json 1.2.4 Jun 9, 2018

README.md

streamtest

Streams test library

NPM version

Build status

Dependency Status

devDependency Status

Coverage Status

Code Climate

Dependency Status

streamtest is a set of utils to test your stream based modules accross various stream implementations of NodeJS.

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:

var StreamTest = require('streamtest');

describe('My Stream Lib', function() {

  // Iterating through versions
  StreamTest.versions.forEach(function(version) {

    describe('for ' + version + ' streams', function() {

      // here goes your code
      it('should work', function(done) {

        StreamTest[version].fromChunks(['a ', 'chunk', 'and', 'another'])
          .pipe(myTestedStream)
          .pipe(StreamTest[version].toText(function(err, text) {
            if(err) {
              done(err);
            }
            assert.equal(text, 'the text as i should be');
            done();
          }));

      });

    });

  });

});

API

StreamTest.versions:Array

List of supported versions (currently v1 and v2).

StreamTest[version]:Object

Object available for each version containing the following methods.

StreamTest[version].fromChunks(chunks:Array, timeout:Number)

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

StreamTest[version].fromObjects(objects:Array, timeout:Number)

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

StreamTest[version].fromErroredChunks(err:Error, chunks:Array, timeout:Number)

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

StreamTest[version].fromErroredObjects(err:Error, objects:Array, timeout:Number)

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

StreamTest[version].toChunks(cb:Function)

Create a writable stream collecting written chunks and calling the cb function when it finishes.

The cb function take in an error and an Array of chunks.

StreamTest[version].toObjects(cb:Function)

Create a writable stream collecting written chunks and calling the cb function when it finishes.

The cb function take in an error and an Array of objects.

StreamTest[version].toText(cb:Function)

Create a writable stream collecting written chunks and calling the cb function when it finishes with the whole content converted to text.

The cb function take in an error and a string.

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

Stats

NPM NPM

License

MIT

You can’t perform that action at this time.