| 'use strict'; |
| const common = require('../common'); |
| const fs = require('fs'); |
| const assert = require('assert'); |
| const tmpdir = require('../common/tmpdir'); |
| const file = tmpdir.resolve('write_stream_filehandle_test.txt'); |
| const input = 'hello world'; |
| |
| tmpdir.refresh(); |
| |
| fs.promises.open(file, 'w+').then((handle) => { |
| let calls = 0; |
| const { |
| write: originalWriteFunction, |
| writev: originalWritevFunction |
| } = handle; |
| handle.write = function write() { |
| calls++; |
| return Reflect.apply(originalWriteFunction, this, arguments); |
| }; |
| handle.writev = function writev() { |
| calls++; |
| return Reflect.apply(originalWritevFunction, this, arguments); |
| }; |
| const stream = fs.createWriteStream(null, { fd: handle }); |
| |
| stream.end(input); |
| stream.on('close', common.mustCall(() => { |
| assert(calls > 0, 'expected at least one call to fileHandle.write or ' + |
| 'fileHandle.writev, got 0'); |
| })); |
| }).then(common.mustCall()); |