Skip to content

Commit

Permalink
test: increase test coverage for fs/promises.js
Browse files Browse the repository at this point in the history
PR-URL: #19811
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
  • Loading branch information
humphd authored and addaleax committed May 14, 2018
1 parent e6c0bbe commit 2b6e8cc
Showing 1 changed file with 50 additions and 5 deletions.
55 changes: 50 additions & 5 deletions test/parallel/test-fs-promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,24 +87,60 @@ function verifyStatObject(stat) {
stats = await stat(dest);
verifyStatObject(stats);

stats = await handle.stat();
verifyStatObject(stats);

await fdatasync(handle);
await handle.datasync();
await fsync(handle);
await handle.sync();

const buf = Buffer.from('hello world');

const buf = Buffer.from('hello fsPromises');
const bufLen = buf.length;
await write(handle, buf);

const ret = await read(handle, Buffer.alloc(11), 0, 11, 0);
assert.strictEqual(ret.bytesRead, 11);
const ret = await read(handle, Buffer.alloc(bufLen), 0, bufLen, 0);
assert.strictEqual(ret.bytesRead, bufLen);
assert.deepStrictEqual(ret.buffer, buf);

const buf2 = Buffer.from('hello FileHandle');
const buf2Len = buf2.length;
await handle.write(buf2, 0, buf2Len, 0);
const ret2 = await handle.read(Buffer.alloc(buf2Len), 0, buf2Len, 0);
assert.strictEqual(ret2.bytesRead, buf2Len);
assert.deepStrictEqual(ret2.buffer, buf2);

await chmod(dest, 0o666);
await fchmod(handle, 0o666);
await handle.chmod(0o666);

// `mode` can't be > 0o777
assert.rejects(
async () => chmod(handle, (0o777 + 1)),
{
code: 'ERR_INVALID_ARG_TYPE',
name: 'TypeError [ERR_INVALID_ARG_TYPE]'
}
);
assert.rejects(
async () => fchmod(handle, (0o777 + 1)),
{
code: 'ERR_OUT_OF_RANGE',
name: 'RangeError [ERR_OUT_OF_RANGE]'
}
);
assert.rejects(
async () => handle.chmod(handle, (0o777 + 1)),
{
code: 'ERR_INVALID_ARG_TYPE',
name: 'TypeError [ERR_INVALID_ARG_TYPE]'
}
);

await utimes(dest, new Date(), new Date());

try {
await futimes(handle, new Date(), new Date());
await handle.utimes(new Date(), new Date());
} catch (err) {
// Some systems do not have futimes. If there is an error,
// expect it to be ENOSYS
Expand Down Expand Up @@ -152,6 +188,15 @@ function verifyStatObject(stat) {
await rmdir(newdir);

await mkdtemp(path.resolve(tmpDir, 'FOO'));
assert.rejects(
// mkdtemp() expects to get a string prefix.
async () => mkdtemp(1),
{
code: 'ERR_INVALID_ARG_TYPE',
name: 'TypeError [ERR_INVALID_ARG_TYPE]'
}
);

}

doTest().then(common.mustCall());
Expand Down

0 comments on commit 2b6e8cc

Please sign in to comment.