mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2024-12-28 10:09:09 +00:00
65 lines
1.5 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
}); |