Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

watch with test not picking up new test files #53077

Open
brettearle opened this issue May 20, 2024 · 6 comments
Open

watch with test not picking up new test files #53077

brettearle opened this issue May 20, 2024 · 6 comments
Labels
test_runner watch-mode Issues and PRs related to watch mode

Comments

@brettearle
Copy link

brettearle commented May 20, 2024

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.

@brettearle brettearle changed the title watch with test not picking up new test files when watch triggers watch with test not picking up new test files May 20, 2024
@VoltrexKeyva VoltrexKeyva added test_runner watch-mode Issues and PRs related to watch mode labels May 20, 2024
@jakecastelli
Copy link
Contributor

jakecastelli commented May 21, 2024

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.

@brettearle
Copy link
Author

Thanks for clarifying Jake, this sounds good. Will wait for MoLow to clarify before digging into it.

@jakecastelli
Copy link
Contributor

Cheers mate, I've also found that rename, delete a watched test file would cause to throw an error #53113.

@MoLow
Copy link
Member

MoLow commented May 24, 2024

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

@brettearle
Copy link
Author

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

@jakecastelli
Copy link
Contributor

Sure! Let me know if you need a hand or something

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test_runner watch-mode Issues and PRs related to watch mode
Projects
None yet
Development

No branches or pull requests

4 participants