Skip to content

Extends Chai with assertions about streams.

License

Notifications You must be signed in to change notification settings

gicaz/chai-stream

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chai-stream

Build Status npm version

Extends Chai with assertions about streams.

Install

Node.js

npm install --save-dev chai-stream

AMD

define(function(require, exports, module) {
  var chai = require('chai');
  var chaiStream = require('chai-stream');
  
  chai.use(chaiStream);
});

script tag

<script src="chai.js"></script>
<script src="chai-stream.js"></script>

Usage

BDD-Style

var chai = require('chai');
var chaiStream = require('chai-stream');
chai.use(chaiStream);

var expect = chai.expect;

describe('getMyStream', function() {
  it('should return a readable stream', function() {
    var stream = getMyStream();

    expect(stream).to.be.a.ReadableStream;
  });

  it('should return a stream that will end', function() {
    var stream = getMyStream();

    return expect(stream).to.end;
  });
});

expect(obj).to.be.a.Stream

Type: function(any)

This assertion check that the specified object have a pipe method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

expect(obj).to.be.a.ReadableStream

Type: function(any)

This assertion check that the specified object have a pipe and resume method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

expect(obj).to.be.a.WritableStream

Type: function(any)

This assertion check that the specified object have a pipe and write method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

expect(obj).to.end

Type: function(any): Promise<void>

Returns a promise that fulfilled when a end event is fired. And this function force the stream to read (like piping with WritableStream).

obj

Type: any

waitUntilStreamEnd listen end or error event of the stream.

TDD-Style

var chai = require('chai');
var chaiStream = require('chai-stream');
chai.use(chaiStream);

var assert = chai.assert;

describe('getMyStream', function() {
  it('should return a readable stream', function() {
    var stream = getMyStream();

    assert.isReadableStream(stream);
  });

  it('should return a stream that will end', function() {
    var stream = getMyStream();

    return assert.streamWillEnd(stream);
  });
});

assert.isStream(obj)

Type: function(any)

This assertion check that the specified object have a pipe method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

assert.isReadableStream(obj)

Type: function(any)

This assertion check that the specified object have a pipe and resume method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

assert.isWritableStream(obj)

Type: function(any)

This assertion check that the specified object have a pipe and write method. So, it pass streams that not inherit Node's Stream.

obj

Type: any

assert.streamWillEnd(obj)

Type: function(any): Promise<void>

Returns a promise that fulfilled when a end event is fired. And this function force the stream to read (like piping with WritableStream).

obj

Type: any

waitUntilStreamEnd listen end or error event of the stream.

License

MIT (c) Kuniwak

About

Extends Chai with assertions about streams.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%