1. streamtest
Streams test library
streamtest
Package: streamtest
Created by: nfroidure
Last modified: Mon, 27 Jun 2022 00:55:44 GMT
Version: 2.0.0
License: MIT
Downloads: 9,582
Repository: https://github.com/nfroidure/streamtest

Install

npm install streamtest
yarn add streamtest

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(['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 [email protected]:nfroidure/streamtest.git
cd streamtest
npm install

Then, run the tests:

 npm test

Authors

License

MIT

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code