News

Use Laravel Dusk to Test JS-Based Applications

Published
Use Laravel Dusk to Test JS-Based Applications image

Laravel Husk is a thin, light scaffolded Laravel Dusk environment. It allows you to test JavaScript applications with PHP using Pest without scaffolding an entire Laravel application.

Once you've followed the installation instructions, you can write Dusk feature tests like any other application using Dusk. You'll have a browser folder, and inside of that folder, you can run your Dusk test suite with the following command:

# Start your JS application
npm run dev
 
# Run the Dusk test suite
php application pest:dusk

Here's an example of a test from a demo Nuxt application using Husk for end-to-end feature tests:

use Laravel\Dusk\Browser;
use Tests\Pages\HomePage;
 
it('loads', function () {
$this->browse(function (Browser $browser) {
$browser->visit(new HomePage)->assertSee('Welcome to your Nuxt Application');
});
});

Learn More

There's not much more to learn beyond the Dusk and Pest documentation. Husk takes the pain out of setting up a Dusk environment outside of Laravel applications and provides an easy path to test JS applications with familiar tools.

The author has some example projects written in Nuxt, Gatsby, and Gridsome. These examples are helpful to visualize all the moving pieces involved in testing JS apps with Dusk. It looks like NextJS and Svelte are planned, but the links were broken when I looked through the Husk readme.

To get started in your own project, check out Laravel Husk on GitHub. The README also includes a GitHub actions template you can use to start running Dusk tests in your JS projects.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article