summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2018-10-23 22:26:57 +0200
committerRich Trott <rtrott@gmail.com>2018-10-26 06:35:21 -0700
commit482b56ae60bb14588ee57dd92b48158d5f7c2f23 (patch)
tree7a3cefd98c2657486819cf601e4d7b88c27b358c /test
parent6223236151f25975e380eef8470243ff8cf3f61d (diff)
downloadandroid-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.js50
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
+ }
+ );
+ }));
});