tra-analysis/website/functions/node_modules/split-array-stream/test.js
2019-01-06 13:14:45 -06:00

65 lines
1.5 KiB
JavaScript

'use strict';
var assert = require('assert');
var through = require('through2');
var split = require('./index.js');
describe('split-array-stream', function () {
var array = [
{ id: 1, user: 'Dave' },
{ id: 2, user: 'Dave' },
{ id: 3, user: 'Dave' },
{ id: 4, user: 'Stephen' }
];
it('should work', function (done) {
var numDataEvents = 0;
var stream = through.obj();
stream.on('data', function () { numDataEvents++; });
split(array, stream, function (streamEnded) {
assert.strictEqual(streamEnded, false);
assert.strictEqual(numDataEvents, array.length);
done();
});
});
it('should not push more results after end', function (done) {
var stream = through.obj();
var numDataEvents = 0;
var expectedNumDataEvents = 2;
stream.on('data', function () {
numDataEvents++;
if (numDataEvents === expectedNumDataEvents) {
this.end();
}
if (numDataEvents > expectedNumDataEvents) {
throw new Error('Should not have received this event.');
}
});
split(array, stream, function (streamEnded) {
assert.strictEqual(streamEnded, true);
assert.strictEqual(numDataEvents, expectedNumDataEvents);
done();
});
});
it('should not modify original array', function (done) {
var expectedArray = [].slice.call(array);
split(array, through.obj(), function () {
assert.deepEqual(array, expectedArray);
done();
});
});
});