Laravel 8.23, weekly updates, and 🔥 tip
Few new additions this week, with a fast follow patch release. So we get bumped to 8.23.1.
Also, there was a security patch last week, so you should definitely bump your version constraints (if this wasn't automated for you by Shift already).
Highlights from 8.23:
- Limit expected bindings in #35865
- Allow a specific seeder to be used in tests in #35864
- Add default parameter to
solein Eloquent in #35902
reduceclosure for Collection and LazyCollection in #35878
- Add validation support for TeamSpeak3 URI scheme in #35933
You may review the full branch diff on GitHub for a complete list of changes.
This minor version bump and update is automated for subscribers to a Shifty Plan. If you don't have one of those, be sure to bump your constraint and run
composer update to get the latest features.
Last week I finished up the remaining Dusk tests. Most of them dealt with handling Stripe Elements. I found this post to guide me through this, just needed to modernize a few references. I also leveraged assertSeeIn instead of low-level
All the remaining "facelift" items were completed. I updated the filtering UX on the Shifts page from a first-time user perspective. These now give a clearer path of how to upgrade older apps by breaking the Shifts into "Start with", "Next run", and "Optionally run" sections.
I also had a few Human Shifts. I upgraded one app from Laravel 5.1 to 8.x in under 10 hours. I'm told that has been pushed to production and is running smoothly. The other was from Laravel 5.6 to 8.x in about 4 hours. We'll be reviewing that Thursday.
This week I have a few final tweaks I want to make to the website. Then both Jess and I are going to switch gears to the Shift "engine" and focus on writing the Tailwind 1.x Shift and Tailwind 2.x Shift.
I touched upon this before, but since Dusk runs the application and tests separately you may run into a few gotchas. For example, I was using the
DatabaseTransactions trait in an effort to reset the database changes from each test case. However, this and the
RefreshDatabase trait are unusable with Dusk.
Instead, you may use the
DatabaseMigrations. I found this to significantly slow down my tests. So I simply removed it and allowed my Dusk tests to accumulate records in the database for each run. This does increase the chance of "test pollution" - where remnants from a previous test fail another test. But I am comfortable with that trade-off as it keeps the tests fast and exposes potential overlap in test cases.