current commit
261015.3 · vfs: unflag
// Flags: --disable-warning=ExperimentalWarning
'use strict';

// VFS streams must expose bytesRead, bytesWritten, and pending.

const common = require('../common');
const assert = require('assert');
const vfs = require('node:vfs');

// ReadStream: bytesRead and pending
{
  const myVfs = vfs.create();
  myVfs.writeFileSync('/stream.txt', 'stream data');

  const rs = myVfs.createReadStream('/stream.txt');
  assert.strictEqual(rs.pending, true);

  rs.on('data', common.mustCall(() => {
    assert.strictEqual(rs.pending, false);
    assert.ok(rs.bytesRead > 0);
  }));

  rs.on('end', common.mustCall());
}

// WriteStream: bytesWritten and pending
{
  const myVfs = vfs.create();
  myVfs.writeFileSync('/out.txt', '');

  const ws = myVfs.createWriteStream('/out.txt');
  assert.strictEqual(ws.pending, true);
  assert.strictEqual(ws.bytesWritten, 0);

  ws.write('hello', common.mustCall(() => {
    assert.strictEqual(ws.pending, false);
    assert.strictEqual(ws.bytesWritten, 5);
    ws.end();
  }));
}