From 94dcdfb8983836265e723190d56154b7dcd28ef6 Mon Sep 17 00:00:00 2001 From: Masashi Hirano Date: Thu, 10 May 2018 03:13:54 +0900 Subject: [PATCH] test: increase coverage for fs.promises.truncate To increase test coverage, added tests for fs.promises.truncate and FileHandle.truncate. PR-URL: https://github.com/nodejs/node/pull/20638 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Backport-PR-URL: https://github.com/nodejs/node/pull/21172 --- .../test-fs-promises-file-handle-truncate.js | 26 +++++++++++++++++++ test/parallel/test-fs-promises.js | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 test/parallel/test-fs-promises-file-handle-truncate.js diff --git a/test/parallel/test-fs-promises-file-handle-truncate.js b/test/parallel/test-fs-promises-file-handle-truncate.js new file mode 100644 index 00000000000000..44d919a042e276 --- /dev/null +++ b/test/parallel/test-fs-promises-file-handle-truncate.js @@ -0,0 +1,26 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const path = require('path'); +const { open, readFile } = require('fs').promises; +const tmpdir = require('../common/tmpdir'); + +tmpdir.refresh(); +common.crashOnUnhandledRejection(); + +async function validateTruncate() { + const text = 'Hello world'; + const filename = path.resolve(tmpdir.path, 'truncate-file.txt'); + const fileHandle = await open(filename, 'w+'); + + const buffer = Buffer.from(text, 'utf8'); + await fileHandle.write(buffer, 0, buffer.length); + + assert.deepStrictEqual((await readFile(filename)).toString(), text); + + await fileHandle.truncate(5); + assert.deepStrictEqual((await readFile(filename)).toString(), 'Hello'); +} + +validateTruncate().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises.js b/test/parallel/test-fs-promises.js index d2e82243458ffe..32439ce0c48cac 100644 --- a/test/parallel/test-fs-promises.js +++ b/test/parallel/test-fs-promises.js @@ -17,6 +17,7 @@ const { mkdir, mkdtemp, open, + readFile, readdir, readlink, realpath, @@ -24,6 +25,7 @@ const { rmdir, stat, symlink, + truncate, unlink, utimes } = fsPromises; @@ -99,6 +101,8 @@ function verifyStatObject(stat) { const ret2 = await handle.read(Buffer.alloc(buf2Len), 0, buf2Len, 0); assert.strictEqual(ret2.bytesRead, buf2Len); assert.deepStrictEqual(ret2.buffer, buf2); + await truncate(dest, 5); + assert.deepStrictEqual((await readFile(dest)).toString(), 'hello'); await chmod(dest, 0o666); await handle.chmod(0o666);