streamtest
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/streamtest package

    2.0.0 • Public • Published

    streamtest

    Streams test library

    GitHub license Build status Coverage Status NPM version Dependency Status devDependency Status Package Quality Code Climate

    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(['', '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

    Authors

    License

    MIT

    Install

    npm i streamtest

    DownloadsWeekly Downloads

    3,703

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    20.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar