// 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();
}));
}