Skip to content
This repository has been archived by the owner on Aug 15, 2019. It is now read-only.

Kuniwak/chai-stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 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