diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2018-10-23 22:26:57 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2018-10-26 06:35:21 -0700 |
commit | 482b56ae60bb14588ee57dd92b48158d5f7c2f23 (patch) | |
tree | 7a3cefd98c2657486819cf601e4d7b88c27b358c /test | |
parent | 6223236151f25975e380eef8470243ff8cf3f61d (diff) | |
download | android-node-v8-482b56ae60bb14588ee57dd92b48158d5f7c2f23.tar.gz android-node-v8-482b56ae60bb14588ee57dd92b48158d5f7c2f23.tar.bz2 android-node-v8-482b56ae60bb14588ee57dd92b48158d5f7c2f23.zip |
fs: default open/openSync flags argument to 'r'
Make fs.open() and fs.openSync() more economic to use by making the
flags argument optional. You can now write:
fs.open(file, cb)
Instead of the more verbose:
fs.open(file, 'r', cb)
This idiom is already supported by functions like fs.readFile().
PR-URL: https://github.com/nodejs/node/pull/23767
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-fs-open.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/parallel/test-fs-open.js b/test/parallel/test-fs-open.js index e988a7e197..7881248252 100644 --- a/test/parallel/test-fs-open.js +++ b/test/parallel/test-fs-open.js @@ -36,6 +36,12 @@ try { } assert.strictEqual(caughtException, true); +fs.openSync(__filename); + +fs.open(__filename, common.mustCall((err) => { + assert.ifError(err); +})); + fs.open(__filename, 'r', common.mustCall((err) => { assert.ifError(err); })); @@ -44,6 +50,39 @@ fs.open(__filename, 'rs', common.mustCall((err) => { assert.ifError(err); })); +fs.open(__filename, 'r', 0, common.mustCall((err) => { + assert.ifError(err); +})); + +fs.open(__filename, 'r', null, common.mustCall((err) => { + assert.ifError(err); +})); + +async function promise() { + await fs.promises.open(__filename); + await fs.promises.open(__filename, 'r'); +} + +promise().then(common.mustCall()).catch(common.mustNotCall()); + +common.expectsError( + () => fs.open(__filename, 'r', 'boom', common.mustNotCall()), + { + code: 'ERR_INVALID_ARG_VALUE', + type: TypeError + } +); + +for (const extra of [[], ['r'], ['r', 0], ['r', 0, 'bad callback']]) { + common.expectsError( + () => fs.open(__filename, ...extra), + { + code: 'ERR_INVALID_CALLBACK', + type: TypeError + } + ); +} + [false, 1, [], {}, null, undefined].forEach((i) => { common.expectsError( () => fs.open(i, 'r', common.mustNotCall()), @@ -59,4 +98,15 @@ fs.open(__filename, 'rs', common.mustCall((err) => { type: TypeError } ); + fs.promises.open(i, 'r') + .then(common.mustNotCall()) + .catch(common.mustCall((err) => { + common.expectsError( + () => { throw err; }, + { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError + } + ); + })); }); |