A dusk browser extension package for time traveling

0.0.2 2020-12-24 23:22 UTC

This package is auto-updated.

Last update: 2022-04-27 01:29:09 UTC



A dusk browser extension package for time traveling

Latest Version on Packagist Tests Total Downloads

This package feeds the hunger for Dusk test cases having time modified requests. All PR's are welcome since it's still not mature enough, and might not work as expected. But I think it's easy to understand what this package does.


You can install the package via composer:

composer require paksuco/dusk-time-travel

There is a crucial step to do after installing the package to let the browser have time travel methods, you need to extend your browser class from Paksuco/DuskTimeTravel/Browser class instead of the stock Laravel/Dusk/Browser. This class acts like a middle man between your test cases and the Laravel Dusk browser.

To do this, add this code to your DuskTestCase.php file:

    use \Paksuco\DuskTimeTravel\Browser as TimeTravelBrowser;

    class DuskTestCase extends BaseTestCase {

        protected function newBrowser($driver)
            return new TimeTravelBrowser($driver);



Since you've changed your browser class, you've gained access to two new Dusk browser methods: travelTo($time) and travelBack. As you can easily understand from the names, first travels through time, uses a Illuminate/Support/Carbon instance as the time input, and second brings it back.

Note: As it's using cookies to deliver the modified time to the browser, only the next requests will be affected with the changed time, the current page won't be having the date modified.

For example:

// test case
$this->browse(function ($browser) {

    // on the homepage, you will see today's date as the current date.

    // but, like this, you'll see tomorrows date as the current date

    // an example use case, do something in yesterdays date and expect it to see today.

Both of them will use tomorrows date as the next request (AJAX or Redirect, doesn't matter).

After you've recreated the instance, or manually reset the date back to current by using travelBack, the date server uses will revert to normal.


A test case is included, but since it's a Dusk extension, the tests are run on a Laravel instance having Dusk installed. You can test the plugin the same way .github/workflows/run-tests.yml workflow does.


Please see CHANGELOG for more information on what has changed recently.


Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.



The MIT License (MIT). Please see License File for more information.