Skip to content

Commit

Permalink
test: increase test coverage for fs.promises read
Browse files Browse the repository at this point in the history
PR-URL: #22800
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Yuta Hiroto <hello@hiroppy.me>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
  • Loading branch information
ratracegrad authored and mhdawson committed Sep 28, 2018
1 parent 0f78b9a commit 27f3d9a
Showing 1 changed file with 36 additions and 7 deletions.
43 changes: 36 additions & 7 deletions test/parallel/test-fs-promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ function verifyStatObject(stat) {
assert.strictEqual(typeof stat.mode, 'number');
}

async function getHandle(dest) {
await copyFile(fixtures.path('baz.js'), dest);
await access(dest, 'r');

return open(dest, 'r+');
}

{
async function doTest() {
tmpdir.refresh();
Expand Down Expand Up @@ -93,6 +100,19 @@ function verifyStatObject(stat) {
await handle.datasync();
await handle.sync();

// test fs.read promises when length to read is zero bytes
{
const dest = path.resolve(tmpDir, 'test1.js');
const handle = await getHandle(dest);
const buf = Buffer.from('DAWGS WIN');
const bufLen = buf.length;
await handle.write(buf);
const ret = await handle.read(Buffer.alloc(bufLen), 0, 0, 0);
assert.strictEqual(ret.bytesRead, 0);

await unlink(dest);
}

const buf = Buffer.from('hello fsPromises');
const bufLen = buf.length;
await handle.write(buf);
Expand Down Expand Up @@ -203,13 +223,22 @@ function verifyStatObject(stat) {

await unlink(newLink2);

const newdir = path.resolve(tmpDir, 'dir');
await mkdir(newdir);
stats = await stat(newdir);
assert(stats.isDirectory());
const list = await readdir(tmpDir);
assert.deepStrictEqual(list, ['baz2.js', 'dir']);
await rmdir(newdir);
// testing readdir lists both files and directories
{
const newDir = path.resolve(tmpDir, 'dir');
const newFile = path.resolve(tmpDir, 'foo.js');

await mkdir(newDir);
await writeFile(newFile, 'DAWGS WIN!', 'utf8');

stats = await stat(newDir);
assert(stats.isDirectory());
const list = await readdir(tmpDir);
assert.notStrictEqual(list.indexOf('dir'), -1);
assert.notStrictEqual(list.indexOf('foo.js'), -1);
await rmdir(newDir);
await unlink(newFile);
}

// mkdir when options is number.
{
Expand Down

0 comments on commit 27f3d9a

Please sign in to comment.