Skip to content

Commit

Permalink
test: refactor test-stream-pipe-after-end
Browse files Browse the repository at this point in the history
* replace `process.on('exit', ...)` checks with `common.mustCall()`
* assert.equal() -> assert.strictEqual()
* provide duration of 1ms to timer without a duration
* remove unused function argument

PR-URL: #10483
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Italo A. Casas <me@italoacasas.com>
  • Loading branch information
Trott authored and evanlucas committed Jan 4, 2017
1 parent 7fbd12f commit 78e8aa8
Showing 1 changed file with 7 additions and 20 deletions.
27 changes: 7 additions & 20 deletions test/parallel/test-stream-pipe-after-end.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';
require('../common');
const common = require('../common');
const assert = require('assert');
const Readable = require('_stream_readable');
const Writable = require('_stream_writable');
Expand All @@ -13,7 +13,7 @@ function TestReadable(opt) {
this._ended = false;
}

TestReadable.prototype._read = function(n) {
TestReadable.prototype._read = function() {
if (this._ended)
this.emit('error', new Error('_read called twice'));
this._ended = true;
Expand All @@ -35,31 +35,18 @@ TestWritable.prototype._write = function(chunk, encoding, cb) {

// this one should not emit 'end' until we read() from it later.
const ender = new TestReadable();
let enderEnded = false;

// what happens when you pipe() a Readable that's already ended?
const piper = new TestReadable();
// pushes EOF null, and length=0, so this will trigger 'end'
piper.read();

setTimeout(function() {
ender.on('end', function() {
enderEnded = true;
});
assert(!enderEnded);
setTimeout(common.mustCall(function() {
ender.on('end', common.mustCall(function() {}));
const c = ender.read();
assert.equal(c, null);
assert.strictEqual(c, null);

const w = new TestWritable();
let writableFinished = false;
w.on('finish', function() {
writableFinished = true;
});
w.on('finish', common.mustCall(function() {}));
piper.pipe(w);

process.on('exit', function() {
assert(enderEnded);
assert(writableFinished);
console.log('ok');
});
});
}), 1);

0 comments on commit 78e8aa8

Please sign in to comment.