'use strict'; /* * This test makes sure that `writeFile()` always writes from the current * position of the file, instead of truncating the file. */ const common = require('../common'); const assert = require('assert'); const path = require('path'); const { readFileSync } = require('fs'); const { open } = require('fs').promises; const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); const fn = path.join(tmpdir.path, 'test.txt'); async function writeFileTest() { const handle = await open(fn, 'w'); /* Write only five bytes, so that the position moves to five. */ const buf = Buffer.from('Hello'); const { bytesWritten } = await handle.write(buf, 0, 5, null); assert.strictEqual(bytesWritten, 5); /* Write some more with writeFile(). */ await handle.writeFile('World'); /* New content should be written at position five, instead of zero. */ assert.deepStrictEqual(readFileSync(fn).toString(), 'HelloWorld'); } writeFileTest() .then(common.mustCall());