Laravel 5.8.24 Released
Published on by Paul Redmond
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
ServeCommand
viaSERVER_PORT
env variable (#28849, 6a18e73) - Allowed console environment argument to be separated with a space (#28869)
- Added
@endcomponentFirst
directive (#28884) - Added optional parameter
$when
toretry
helper (85c0801)
Fixed
- Fixed
Builder::dump()
andBuilder::dd()
with global scopes (#28858)
Reverted
Changed
- Handle
SuspiciousOperationException
in router asNotFoundHttpException
(#28866)