Never Miss a Laravel Release 🚀
The Laravel team released v5.8.24 yesterday with new TestResponse features and other miscellaneous quality of life improvements.
First the assertSessionHas method has the capability of asserting a session contains a piece of data using a closure. While sessions are generally only contain simple values, here’s a use-case example from the pull request:
// Before$response->assertSessionHas('authenticatable');$this->assertTrue($user->is(session('authenticatable'))); // After$response->assertSessionHas('authenticatable', function ($authenticatable) use ($user) { return $user->is($authenticatable);});
Next, a new assertUnauthorized method was added to the TestResponse class as a convenience to assert a 401 status code:
$response->assertUnauthorized();
Next, the server port can be defined via the SERVER_PORT environment variable for the Artisan serve command:
# Before 5.8.24php artisan serve --port=9005 # Via env or in the .env fileexport SERVER_PORT="9005"php artisan serve
Next, an optional $when parameter was added to the retry() helper which allows a callback to dictate retries. I think the unit tests in the commit help illustrate the usage:
$attempts = retry(2, function ($attempts) { if ($attempts > 1) { return $attempts; } throw new RuntimeException;}, 100, function ($ex) { return true;}); // Make sure we made two attempts$this->assertEquals(2, $attempts); // Make sure we waited 100ms for the first attempt$this->assertTrue(microtime(true) - $startTime >= 0.1);
Last, a nice quality of life improvement when using the artisan console with the —env flag. Previously, the env flag is only parsed correctly with an equals sign (—env=dev) but now a space will work too:
php artisan --env dev the:command
You can see the full list of fixes below, and the whole diff between 5.8.23 and 5.8.24 on GitHub. The full release notes for Laravel 5.8 are available in the GitHub 5.8 changelog:
v5.8.24
Added
- Added possibility to assert that the session contains a given piece of data using a closure in
TestResponse::assertSessionHas()(#28837) - Added
TestResponse::assertUnauthorized()(#28851) - Allowed to define port in
ServeCommandviaSERVER_PORTenv variable (#28849, 6a18e73) - Allowed console environment argument to be separated with a space (#28869)
- Added
@endcomponentFirstdirective (#28884) - Added optional parameter
$whentoretryhelper (85c0801)
Fixed
- Fixed
Builder::dump()andBuilder::dd()with global scopes (#28858)
Reverted
Changed
- Handle
SuspiciousOperationExceptionin router asNotFoundHttpException(#28866)