tape('repeat calls to .end() should cause an error', function (t) {
t.plan(4)
const s = new Writable({
write (data, cb) {
t.equals(data, 'a')
cb()
}
})
s.on('error', function () {
t.pass('Error called by multiple end calls')
})
s.on('close', function () {
t.end()
})
t.equals(s.writable, true)
s.end('a')
t.equals(s.writable, false)
s.end('b')
}
For one, the write method is called for both end() calls and there is no error caused when this is executed.
I noted this as incompatibility to the current Node.js streams and am wondering: is that intentional? should that be documented?
Yea, always found it very weird how Node.js streams forward user errors as stream.on('errors'). Makes it really hard in practice to find programming issues / runtime stream errors.
The following test currently fails:
For one, the write method is called for both
end()
calls and there is no error caused when this is executed. I noted this as incompatibility to the current Node.js streams and am wondering: is that intentional? should that be documented?