summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-console-sync-write-error.js
blob: 9a9766645b629ae2b6723e5843b4df71ee7297ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// deno-fmt-ignore-file
// deno-lint-ignore-file

// Copyright Joyent and Node contributors. All rights reserved. MIT license.
// Taken from Node 18.12.1
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.

'use strict';
const common = require('../common');
const { Console } = require('console');
const { Writable } = require('stream');

for (const method of ['dir', 'log', 'warn']) {
  {
    const out = new Writable({
      write: common.mustCall((chunk, enc, callback) => {
        callback(new Error('foobar'));
      })
    });

    const c = new Console(out, out, true);
    c[method]('abc'); // Should not throw.
  }

  {
    const out = new Writable({
      write: common.mustCall((chunk, enc, callback) => {
        throw new Error('foobar');
      })
    });

    const c = new Console(out, out, true);
    c[method]('abc'); // Should not throw.
  }

  {
    const out = new Writable({
      write: common.mustCall((chunk, enc, callback) => {
        setImmediate(() => callback(new Error('foobar')));
      })
    });

    const c = new Console(out, out, true);
    c[method]('abc'); // Should not throw.
  }
}