1'use strict'; 2 3const common = require('../common'); 4 5// The following tests validate base functionality for the fs.promises 6// FileHandle.write method. 7 8const fs = require('fs'); 9const { open } = fs.promises; 10const path = require('path'); 11const tmpdir = require('../common/tmpdir'); 12const assert = require('assert'); 13const { finished } = require('stream/promises'); 14const { buffer } = require('stream/consumers'); 15const tmpDir = tmpdir.path; 16 17tmpdir.refresh(); 18 19async function validateWrite() { 20 const filePathForHandle = path.resolve(tmpDir, 'tmp-write.txt'); 21 const fileHandle = await open(filePathForHandle, 'w'); 22 const buffer = Buffer.from('Hello world'.repeat(100), 'utf8'); 23 24 const stream = fileHandle.createWriteStream(); 25 stream.end(buffer); 26 await finished(stream); 27 28 const readFileData = fs.readFileSync(filePathForHandle); 29 assert.deepStrictEqual(buffer, readFileData); 30} 31 32async function validateRead() { 33 const filePathForHandle = path.resolve(tmpDir, 'tmp-read.txt'); 34 const buf = Buffer.from('Hello world'.repeat(100), 'utf8'); 35 36 fs.writeFileSync(filePathForHandle, buf); 37 38 const fileHandle = await open(filePathForHandle); 39 assert.deepStrictEqual( 40 await buffer(fileHandle.createReadStream()), 41 buf 42 ); 43} 44 45Promise.all([ 46 validateWrite(), 47 validateRead(), 48]).then(common.mustCall()); 49