mantoni / mochify.js

☕️ TDD with Browserify, Mocha, Headless Chrome and WebDriver
MIT License
346 stars 57 forks source link

Rewrite: Implement watch mode #247

Closed mantoni closed 8 months ago

mantoni commented 3 years ago

mochify --watch should behave the same way as mocha --watch.

itayperry commented 2 years ago

Hi @mantoni, I can see that the milestone issues are being handled at the speed of light! This is very exciting :)

Can I help? Is this issue ok to start with for "beginners"? If so, just tell me where to start! (even though I understand that until I'll implement it you might already close it yourself lol).

mantoni commented 2 years ago

I'm not sure whether this is for beginners or not. The previous implementation was using watchify, but we're moving away from direct bundler dependencies.

I guess I'd start by looking into how mocha does it …

Thank you for picking this up ❤️

m90 commented 2 years ago

Just out of curiosity (and because I don't know how to answer this myself): would watch mode be a feature of @mochify/mochify (i.e. the API module) or would that be a CLI only thing?

mantoni commented 2 years ago

Since file globs are resolved in the API, I guess it will naturally happen there, no?

itayperry commented 2 years ago

Hi, it takes time to understand everything, but I can see that both mocha and watchify use chokidar to watch files - this seems to be the heart of the process. I'm still looking into this :) https://github.com/mochajs/mocha/blob/a87461caf23999a8b0a64b5f46486b53900a8461/lib/cli/watch-run.js#L170-L173

itayperry commented 2 years ago

Hi @mantoni, I have some silly 'juniorish' questions - I looked at some old commits - really old lol https://github.com/mantoni/mochify.js/commit/1348b92c14cd370002b94bda4196e5272aa2cd13 To use mochify (old and new upcoming version) do I have to bundle my code only with browserify? And if that is true.. is this issue about building our own new watchify ?

we're moving away from direct bundler dependencies

to reduce repository size?

mantoni commented 8 months ago

This does the trick for now:

chokidar '**/*.js' -c 'npm t' --initial --silent

If anyone wants to include that into the mochfiy implementation, development has moved here: https://github.com/mochify-js