summaryrefslogtreecommitdiff
path: root/test/parallel/test-stream-pipeline-async-iterator.js
blob: 06a2ed6ca877f832a77ea96d61bf1972c40d8e90 (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
'use strict';

const common = require('../common');
const { Readable, PassThrough, pipeline } = require('stream');
const assert = require('assert');

const _err = new Error('kaboom');

async function run() {
  const source = new Readable({
    read() {
    }
  });
  source.push('hello');
  source.push('world');

  setImmediate(() => { source.destroy(_err); });

  const iterator = pipeline(
    source,
    new PassThrough(),
    () => {});

  iterator.setEncoding('utf8');

  for await (const k of iterator) {
    assert.strictEqual(k, 'helloworld');
  }
}

run().catch(common.mustCall((err) => assert.strictEqual(err, _err)));