diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/stream-each/test.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/stream-each/test.js')
| -rw-r--r-- | node_modules/stream-each/test.js | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/node_modules/stream-each/test.js b/node_modules/stream-each/test.js new file mode 100644 index 00000000..a4665956 --- /dev/null +++ b/node_modules/stream-each/test.js @@ -0,0 +1,143 @@ +var tape = require('tape') +var through = require('through2') +var ndjson = require('ndjson') +var each = require('./') + +tape('each', function (t) { + var s = through.obj() + s.write('a') + s.write('b') + s.write('c') + s.end() + + s.on('end', function () { + t.end() + }) + + var expected = ['a', 'b', 'c'] + each(s, function (data, next) { + t.same(data, expected.shift()) + next() + }) +}) + +tape('each and callback', function (t) { + var s = through.obj() + s.write('a') + s.write('b') + s.write('c') + s.end() + + var expected = ['a', 'b', 'c'] + each(s, function (data, next) { + t.same(data, expected.shift()) + next() + }, function () { + t.end() + }) +}) + +tape('each (write after)', function (t) { + var s = through.obj() + s.on('end', function () { + t.end() + }) + + var expected = ['a', 'b', 'c'] + each(s, function (data, next) { + t.same(data, expected.shift()) + next() + }) + + setTimeout(function () { + s.write('a') + s.write('b') + s.write('c') + s.end() + }, 100) +}) + +tape('each error', function (t) { + var s = through.obj() + s.write('hello') + s.on('error', function (err) { + t.same(err.message, 'stop') + t.end() + }) + + each(s, function (data, next) { + next(new Error('stop')) + }) +}) + +tape('each error and callback', function (t) { + var s = through.obj() + s.write('hello') + + each(s, function (data, next) { + next(new Error('stop')) + }, function (err) { + t.same(err.message, 'stop') + t.end() + }) +}) + +tape('each with falsey values', function (t) { + var s = through.obj() + s.write(0) + s.write(false) + s.write(undefined) + s.end() + + s.on('end', function () { + t.end() + }) + + var expected = [0, false] + var count = 0 + each(s, function (data, next) { + count++ + t.same(data, expected.shift()) + next() + }, function () { + t.same(count, 2) + }) +}) + +tape('huge stack', function (t) { + var s = through.obj() + + for (var i = 0; i < 5000; i++) { + s.write('foo') + } + + s.end() + + each(s, function (data, cb) { + if (data !== 'foo') t.fail('bad data') + cb() + }, function (err) { + t.error(err, 'no error') + t.end() + }) +}) + +tape('cb only once', function (t) { + var p = ndjson.parse() + var once = true + var data = '{"foo":"' + Array(1000).join('x') + '"}\n' + + each(p, ondata, function (err) { + t.ok(once, 'only once') + t.ok(err, 'had error') + once = false + t.end() + }) + + for (var i = 0; i < 1000; i++) p.write(data) + p.write('{...}\n') + + function ondata (data, cb) { + process.nextTick(cb) + } +}) |
