* First attempt at testing CLI commands
* Apply fixes from StyleCI
* Protect from running locally
* Fix test
* wip
* wip
* wip
* wip
* wip
* Update app.php
* Create config folder and files for CLI tests
* Apply fixes from StyleCI
* Fix some formatting
* Fix imports
* Update all output() calls to use the writer passed in by the command
Ugly capture of all $outputs from commands, by passing them into `writer()` to be bound into the container, where they can then be pulled out from calls to `output()` and its buddies `info()`, `table()`, and `warning()`.
* Apply fixes from StyleCI
* Flesh out park command test
* Apply fixes from StyleCI
* Drop php 7.0 and 7.1
Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Matt Stauffer <matt@tighten.co>
As discussed in #1220, cleaning up after stopping Homebrew services that
run as root is probably the best solution for now.
What's changed:
- Stopping any Homebrew service now restores the appropriate permissions
for the Homebrew directories
- Stopping nginx now also happens via $this->brew
(to avoid code duplication)
The tests were updated to reflect this change.
Before the change, when running `valet use` the code intended to stop currently running PHP services. But the `getRunningServices` method only returned non-root running services. As PHP services started by Valet are run using `sudo` (so running as root), they were not returned and subsequently not stopped.
This change is intended to fix the above and stop PHP services that are started by Valet on a PHP version switch.
This is intended to assist with avoiding having competing non-root instances of valet dependency services running due to userland use of brew CLI commands.
Now, when running `valet stop` or `valet restart` it will (silently) attempt to stop the non-root instance (ignoring any errors thrown), before stopping (and/or starting) the sudo/root instance which is normally used.
(Though obvious, I'll point out that this only applies to services Valet manages.)
Fixes#1057
Update test suite to phpunit 9.5 syntax
Refactored to use polyfill for older PHP versions via `yoast/phpunit-polyfills`
Note: this includes 2 important differences from usual phpunit test suites:
- instead of extending `PHPUnit\Framework\TestCase` we extend `Yoast\PHPUnitPolyfills\TestCases\TestCase`
- instead of handling fixtures via `setUp()` and `tearDown()` we use `set_up()` and `tear_down()` respectively
Comment regarding formatting: I chose to use the FQDN in the `extends` syntax of the class declaration instead of using `use` so that it is more quickly apparent that we're doing something slightly different than usual phpunit syntax, particularly in regards to the set_up() / tear_down() methods that appear immediately following the `extends` line.
Last year's Homebrew's PHP packaging changes altered their version numbering strategy.
Now that their changes appear to have stabilized, Valet also needs some updates to match.
The `linkedPhp()` function was parsing the symlinked directory name for where the php binaries are stored, but that numbering strategy has morphed over time.
This PR changes the logic to accommodate the most common directory naming strategies I can find, including those of older installs.
I've included some examples of these names in code comments for future reference since finding a variety of them can be complicated.