• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3const { Writable } = require('stream');
4const assert = require('assert');
5
6{
7  // Sync + Sync
8  const writable = new Writable({
9    write: common.mustCall((buf, enc, cb) => {
10      cb();
11      assert.throws(cb, {
12        code: 'ERR_MULTIPLE_CALLBACK',
13        name: 'Error'
14      });
15    })
16  });
17  writable.write('hi');
18}
19
20{
21  // Sync + Async
22  const writable = new Writable({
23    write: common.mustCall((buf, enc, cb) => {
24      cb();
25      process.nextTick(() => {
26        assert.throws(cb, {
27          code: 'ERR_MULTIPLE_CALLBACK',
28          name: 'Error'
29        });
30      });
31    })
32  });
33  writable.write('hi');
34}
35
36{
37  // Async + Async
38  const writable = new Writable({
39    write: common.mustCall((buf, enc, cb) => {
40      process.nextTick(cb);
41      process.nextTick(() => {
42        assert.throws(cb, {
43          code: 'ERR_MULTIPLE_CALLBACK',
44          name: 'Error'
45        });
46      });
47    })
48  });
49  writable.write('hi');
50}
51