ava
ava copied to clipboard
Make watch mode wait for the file system to be idle, and have that be configurable
Based on discussion in https://github.com/avajs/ava/discussions/2702, projects with more complicated build setups may want to configure how long watch mode waits for the filesystem to become idle, lest it runs tests prematurely.
~We currently wait at least 100ms, but debounce for another 10ms after changes. ~Instead let's introduce a watchFsIdle
option that defaults to 500ms. This should be configurable through config files only, not CLI flags. We should take time strings, like the timeout
option.
Other name suggestions welcome.
The watcher should wait the duration of idle time after the last change. If another change is detected, it should again wait the duration of the idle time.
~This likely impacts the current watcher tests which are rather brittle. We also have some integration tests that may be affected.~
RE new watch mode config settings, I think it'd make sense to add a new watchModeOptions
top level object in the ava config object, and begin moving all existing and new watch mode options there. Watch mode seems to be a pretty specific mode for running the test runner, so having all the options for this mode in a single flat object is probably a good future proof place.
For example, if watch mode event hooks were added, to support things like clearing the screen between reruns, similar to my request here: https://github.com/avajs/ava/issues/1623 then those could be defined in the top level watchModeOptions
as well
Watch mode has changed a lot in https://github.com/avajs/ava/pull/3218, it'll be easier to implement this and write tests, plus there's a watchMode
configuration object.