Skip to content

fs.watch error message includes filename - #2748

Closed
charlierudolph wants to merge 1 commit into
nodejs:masterfrom
charlierudolph:cr-fsWatch
Closed

fs.watch error message includes filename#2748
charlierudolph wants to merge 1 commit into
nodejs:masterfrom
charlierudolph:cr-fsWatch

Conversation

@charlierudolph

Copy link
Copy Markdown

@brendanashworthbrendanashworth added the fs Issues and PRs related to the fs subsystem / file system. label Sep 9, 2015
Comment threadlib/fs.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you use let instead of var, and a template string instead of concatenation.

@cjihrig

Copy link
Copy Markdown
Contributor

You changed two code paths, but only added a test for one. Can you test for the other too?

@charlierudolph

Copy link
Copy Markdown
Author

Thanks for the review. Code comments addressed. I don't actually know how to test the other code path. which is an error occurring while watching a file. Any suggestions?

Comment threadtest/parallel/test-fs-watch-error.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not necessary.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfortunately it is. If the function doesn't return true, it throws the error.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@charlierudolph Oops, sorry. My bad.

@sindresorhus

Copy link
Copy Markdown

Even if it's non-standard, might be worth going with camelCased fileName for consistency with other envs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName

@cjihrig

Copy link
Copy Markdown
Contributor

One important difference is that Error.prototype.fileName indicates the file that raised the exception, while the proposed addition in this PR indicates a parameter to a file system operation.

@charlierudolph

Copy link
Copy Markdown
Author

@cjihrig bump. Anything else this PR needs?

Comment threadlib/fs.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can actually be const

@cjihrig

Copy link
Copy Markdown
Contributor

It LGTM, but I'd really like a test for the emit path. Would anyone object to a slightly artificial test like:

var watcher = fs.watch(__filename);
watcher._handle.onchange(-1, 'ENOENT', 'foo.js');

@charlierudolph

Copy link
Copy Markdown
Author

okay @cjihrig the emit path now has a test.

Comment threadtest/sequential/test-fs-watch.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of creating watcherErrorCaught, you can just wrap this function in common.mustCall(). That way you can ensure it was called, and fail the test if it's not.

@cjihrig

Copy link
Copy Markdown
Contributor

One comment, but this LGTM

@cjihrig

Copy link
Copy Markdown
Contributor

Oh, and can you squash this down to a single commit?

@charlierudolph

Copy link
Copy Markdown
Author

Switched to using common.mustCall and squashed to a single commit.

@cjihrig

Copy link
Copy Markdown
Contributor

@charlierudolph

Copy link
Copy Markdown
Author

That build is very complex to traverse. Okay from the link provided I got to
https://ci.nodejs.org/job/node-test-binary-arm/88/RUN_SUBSET=5,nodes=pi1-raspbian-wheezy/tapTestReport/
which says test-stringbytes-external.js is what failed. I don't know how I could have made that fail, especially since no error message is provided.

The build page shows another commit is being tested in addition to mine.
https://ci.nodejs.org/job/node-test-binary-arm/88/

@thefourtheye

Copy link
Copy Markdown
Contributor

Don't worry about that test. It fails often.

@cjihrigcjihrig added the semver-minor PRs that contain new features and should be released in the next minor version. label Oct 1, 2015
@cjihrigcjihrig mentioned this pull request Oct 1, 2015
cjihrig pushed a commit that referenced this pull request Oct 2, 2015
This commit adds the relevant filename to fs.watch() errors.
Refs: nodejs/node-v0.x-archive#25542
PR-URL: #2748
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@cjihrig

Copy link
Copy Markdown
Contributor

Thanks! Landed in 87e820e

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fsIssues and PRs related to the fs subsystem / file system.semver-minorPRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@charlierudolph@cjihrig@sindresorhus@thefourtheye@jasnell@MylesBorins@brendanashworth