| 'use strict'; |
| |
| const common = require('../common'); |
| |
| const assert = require('assert'); |
| const stream = require('stream'); |
| |
| const writable = new stream.Writable(); |
| writable._write = (chunk, encoding, cb) => { |
| setTimeout(() => cb(), 10); |
| }; |
| |
| writable.end('testing ended state', common.mustCall()); |
| writable.end(common.mustCall()); |
| writable.on('finish', common.mustCall(() => { |
| let ticked = false; |
| writable.end(common.mustCall((err) => { |
| assert.strictEqual(ticked, true); |
| assert.strictEqual(err.code, 'ERR_STREAM_ALREADY_FINISHED'); |
| })); |
| ticked = true; |
| })); |