node
node copied to clipboard
watch with test not picking up new test files
Version
22.2.0
Platform
Linux Nitro 6.5.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 7 09:00:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
No response
What steps will reproduce the bug?
in directory create testOne.test.mjs
import {test} from "node:test"
import assert from "node:assert"
test("testOne", () => {
assert.equal(1, 1)
})
cd to directory with testOne, run in terminal
node --watch --test
create a new file name testTwo.test.mjs and add same code
import {test} from "node:test"
import assert from "node:assert"
test("testTwo", () => {
assert.equal(1, 1)
})
save the file and watcher doesn't rerun
How often does it reproduce? Is there a required condition?
Can reproduce consistently locally
What is the expected behavior? Why is that the expected behavior?
expected to pick up new files during watch
What do you see instead?
watch doesn't rerun or pick up new file
Additional information
Not sure if this comes under bug or feature request. Assumption I'm making here is intended behaviour is to watch directory for changes. Happy to give this some effort myself if it is a bug, not a c++ dev though.
This is caused by FileWatcher being in the filter mode when you run node --watch --test, which means it finds all the test files at the start and store it in a SafeMap and then it only listens to the changes to the stored files.
Maybe when a new file (with the glob match pattern) add or rename, delete event occur, the runner should re-create the list of files. @MoLow maybe can shine some lights here.
Thanks for clarifying Jake, this sounds good. Will wait for MoLow to clarify before digging into it.
Cheers mate, I've also found that rename, delete a watched test file would cause to throw an error #53113.
Maybe when a new file (with the glob match pattern) add or rename, delete event occur, the runner should re-create the list of files. @MoLow maybe can shine some lights here.
that sounds like a good approach
Awesome, will dig in. @jakecastelli would you like me to jump on that one at the same time? Assuming they will both be based on that safe map. Thanks for helping me out
Sure! Let me know if you need a hand or something
hey @jakecastelli are you in one of the communities so I can ask some basic questions and not bloat this thread?
@brettearle sure, I have reached you out.
Hey Guys, I've noticed the issue has been inactive for a while, so I attempted to resolve it by following the provided suggestions.
Glad you got to this mate, I've been trying to find time and just haven't been able to.
Hey @brettearle, I tried, but I'm not totally satisfied with the result. It would be great if you could review the PR 😁
Also @jakecastelli, any feedback would be greatly appreciated 🚀
I will take a look at your PR asap
Fixed by https://github.com/nodejs/node/pull/54225, thanks for the hard work @pmarchini 🚀