// deno-fmt-ignore-file
// deno-lint-ignore-file

// Copyright Joyent and Node contributors. All rights reserved. MIT license.
// Taken from Node 20.11.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 { 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)));