Another small helper feature coming to Laravel 8 is the ability to fluently time travel in your tests. This will allow you to easily test for things like what happens when a free trial ends, or a next billing date, etc. Here is a quick example that @enunomaduro shared on Twitter showing how you can use this new feature:
// Travel forward five minutes$this->travel(5)->minutes;$this->get($route)->assertSee('Created 5 mins ago');// Travel forward one year$this->travel(1)->year;$this->get($route)->assertSee('Created 1 year ago');// Travel to the given date time$this->travelTo($user->trial_ends_at);$this->get($route)->assertSee('Your free trial is expired');
Under the hood, this is a wrapper to Carbon’s setTestNow and is designed to be a little more fluent than the default. Of course, usage is optional but it’s one of those little things that aim to make your development life a little easier.