diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2018-01-23 10:23:46 +0800 |
---|---|---|
committer | Joyee Cheung <joyeec9h3@gmail.com> | 2018-02-08 18:15:04 +0800 |
commit | d8f73385e220d54de9f9c53da8d8693813e6d774 (patch) | |
tree | 29b772b0b3fe9076c0d685ac476ca30a304397ca /test/parallel/test-fs-exists.js | |
parent | b50571602afdbed72d3cb9e412c0e4ef5d1bae80 (diff) | |
download | android-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.js | 25 |
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'))); |