Sha256: 9e8c86cd6b6eca0d23f6b3725ab686798df9e982ce24e73d509809a85eeca1fc

Contents?: true

Size: 1.86 KB

Versions: 2

Compression:

Stored size: 1.86 KB

Contents

'use strict';

var chai = require('chai');
var expect = chai.expect;
var es = require('event-stream');
var addStream = require('../');

describe('add-stream', function () {
	function emit(chunks) {
		var mutableChunks = [].concat(chunks);
		return es.readable(function (count, callback) {
			if (mutableChunks.length === 0) {
				return this.emit('end');
			}
			callback(null, mutableChunks.shift());
		});
	}

	describe('buffer mode', function () {
		it('should append a stream', function (done) {
			var firstChunks = ['abc', 'def'];
			var secondChunks = ['ghi', 'jkl'];
			emit(firstChunks)
				.pipe(addStream(emit(secondChunks)))
				.pipe(es.wait(function (err, buffer) {
					expect(buffer.toString()).to.equal(firstChunks.concat(secondChunks).join(''));
					done();
				}));
		});

		it('should append a stream from a factory function', function (done) {
			var firstChunks = ['abc', 'def'];
			var secondChunks = ['ghi', 'jkl'];
			emit(firstChunks)
				.pipe(addStream(function () {
					return emit(secondChunks);
				}))
				.pipe(es.wait(function (err, buffer) {
					expect(buffer.toString()).to.equal(firstChunks.concat(secondChunks).join(''));
					done();
				}));
		});
	});

	describe('object mode', function () {
		it('should append a stream', function (done) {
			es.readArray([{p: 1}, {p: 2}, {p: 3}])
				.pipe(addStream.obj(es.readArray([{p: 4}, {p: 5}, {p: 6}])))
				.pipe(es.writeArray(function (err, array) {
					expect(array).to.eql([{p: 1}, {p: 2}, {p: 3}, {p: 4}, {p: 5}, {p: 6}]);
					done();
				}));
		});

		it('should append a stream from a factory function', function (done) {
			es.readArray([{p: 1}, {p: 2}, {p: 3}])
				.pipe(addStream.obj(function () {return es.readArray([{p: 4}, {p: 5}, {p: 6}])}))
				.pipe(es.writeArray(function (err, array) {
					expect(array).to.eql([{p: 1}, {p: 2}, {p: 3}, {p: 4}, {p: 5}, {p: 6}]);
					done();
				}));
		});
	});
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pcp-server-ruby-sdk-0.0.6 node_modules/add-stream/test/spec.js
pcp-server-ruby-sdk-0.1.0 node_modules/add-stream/test/spec.js