pest-plugin-watch icon indicating copy to clipboard operation
pest-plugin-watch copied to clipboard

Replace fswatch with spatie/file-system-watcher (#1)

Open herpaderpaldent opened this issue 2 years ago • 1 comments

DRAFT: Replace fswatch

What do you think about this?

How about replacing fswatch with spatie/file-system-watcher? I know from discord that this has been a topic for quite some time. I'd be more then happy to outline the changes and challenges and functionality but before i do so, i'd like to gather some feedback.

Description (made by whatthediff.ai)

  • Update PHP version requirement to 8.1
  • Remove ReactPHP dependencies and replace with Symfony Process component
  • Replace fswatch dependency with spatie/file-system-watcher package (which uses inotify)
  • Add Termwind for pretty output when watching files, instead of using the default Pest console output which is not very readable on a terminal that supports ANSI colors

Motivation

if you search through the discourse you'll see many problems caused by fswatch f.e. it's not available on package managers for Windows. On Linux Systems the watcher plugin doesn't run at all even with fswatch installed. I was under the impression the move away from fswatch was on the bucket list for some time. @owenvoke might add to this?

Installation

In your project, you should have the JavaScript package chokidar installed. You can install it via npm

npm install chokidar

or Yarn

yarn add chokidar

usage

vendor/bin/pest --watch

you may specify a folder/file to test only. Upon saving the test will executed again.

vendor/bin/pest --watch tests/Unit/foo.php

Anything to consider? Code Style? Anything?

herpaderpaldent avatar Nov 01 '22 15:11 herpaderpaldent