summaryrefslogtreecommitdiff
path: root/test/parallel/test-fs-exists.js
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2018-01-23 10:23:46 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2018-02-08 18:15:04 +0800
commitd8f73385e220d54de9f9c53da8d8693813e6d774 (patch)
tree29b772b0b3fe9076c0d685ac476ca30a304397ca /test/parallel/test-fs-exists.js
parentb50571602afdbed72d3cb9e412c0e4ef5d1bae80 (diff)
downloadandroid-node-v8-d8f73385e220d54de9f9c53da8d8693813e6d774.tar.gz
android-node-v8-d8f73385e220d54de9f9c53da8d8693813e6d774.tar.bz2
android-node-v8-d8f73385e220d54de9f9c53da8d8693813e6d774.zip
fs: throw errors on invalid paths synchronously
- Throw getPathFromURL() and nullCheck() errors synchronously instead of deferring them to the next tick, since we already throw validatePath() errors synchronously. - Merge nullCheck() into validatePath() - Never throws in `fs.exists()`, instead, invoke the callback with false, or emit a warning when the callback is not a function. This is to bring it inline with fs.existsSync(), which never throws. - Updates the comment of rethrow() - Throw ERR_INVALID_ARG_VALUE for null checks PR-URL: https://github.com/nodejs/node/pull/18308 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-fs-exists.js')
-rw-r--r--test/parallel/test-fs-exists.js25
1 files changed, 14 insertions, 11 deletions
diff --git a/test/parallel/test-fs-exists.js b/test/parallel/test-fs-exists.js
index a526373c6a..c52679764b 100644
--- a/test/parallel/test-fs-exists.js
+++ b/test/parallel/test-fs-exists.js
@@ -26,30 +26,33 @@ const fs = require('fs');
const { URL } = require('url');
const f = __filename;
+// Only warnings are emitted when the callback is invalid
+assert.doesNotThrow(() => fs.exists(f));
+assert.doesNotThrow(() => fs.exists());
+assert.doesNotThrow(() => fs.exists(f, {}));
+
fs.exists(f, common.mustCall(function(y) {
assert.strictEqual(y, true);
}));
-assert.doesNotThrow(() => fs.exists(f));
-
fs.exists(`${f}-NO`, common.mustCall(function(y) {
assert.strictEqual(y, false);
}));
+// If the path is invalid, fs.exists will still invoke the callback with false
+// instead of throwing errors
fs.exists(new URL('https://foo'), common.mustCall(function(y) {
assert.strictEqual(y, false);
}));
+fs.exists({}, common.mustCall(function(y) {
+ assert.strictEqual(y, false);
+}));
+
assert(fs.existsSync(f));
assert(!fs.existsSync(`${f}-NO`));
-common.expectsError(
- () => { fs.exists(() => {}); },
- {
- code: 'ERR_INVALID_ARG_TYPE',
- message: 'The "path" argument must be one of type string, Buffer, or URL',
- type: TypeError
- }
-);
-
+// fs.existsSync() never throws
assert(!fs.existsSync());
+assert(!fs.existsSync({}));
+assert(!fs.existsSync(new URL('https://foo')));