Browse Source

fs: fix the error report on fs.link(Sync)

As the Node.js documentation specified:

> fs.link(srcpath, dstpath, callback)

But when we run:

```js
> fs.link()
```

We will get the below:

```js
TypeError: dest path must be a string
    at TypeError (native)
    at Object.fs.link (fs.js:915:11)
    at repl:1:4
```

Just correct the message of relevant 2 errors in this PR :-)

PR-URL: https://github.com/nodejs/node/pull/3917
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
process-exit-stdio-flushing
yorkie 9 years ago
committed by James M Snell
parent
commit
8b97249893
  1. 8
      src/node_file.cc
  2. 16
      test/parallel/test-fs-link.js

8
src/node_file.cc

@ -615,13 +615,13 @@ static void Link(const FunctionCallbackInfo<Value>& args) {
int len = args.Length();
if (len < 1)
return TYPE_ERROR("dest path required");
if (len < 2)
return TYPE_ERROR("src path required");
if (len < 2)
return TYPE_ERROR("dest path required");
if (!args[0]->IsString())
return TYPE_ERROR("dest path must be a string");
if (!args[1]->IsString())
return TYPE_ERROR("src path must be a string");
if (!args[1]->IsString())
return TYPE_ERROR("dest path must be a string");
node::Utf8Value orig_path(env->isolate(), args[0]);
node::Utf8Value new_path(env->isolate(), args[1]);

16
test/parallel/test-fs-link.js

@ -18,3 +18,19 @@ const callback = function(err) {
};
fs.link(srcPath, dstPath, common.mustCall(callback));
// test error outputs
assert.throws(
function() {
fs.link();
},
/src path/
);
assert.throws(
function() {
fs.link('abc');
},
/dest path/
);

Loading…
Cancel
Save