protonemedia / inertiajs-events-laravel-dusk
Inertia.js Events for Laravel Dusk
Requires
- php: ^8.1|^8.2
- illuminate/support: ^9.0|^10.0
- laravel/dusk: ^6.15|^7.0
- nesbot/carbon: ^2.66
Requires (Dev)
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2023-08-17 21:58:26 UTC
README
Inertia.js Events for Laravel Dusk
要求
- PHP 7.4+
- Vue
- Laravel 8.0 和 9.0
支持此包!
❤️ 我们自豪地通过开发Laravel包并免费提供来支持社区。如果这个包为您节省了时间,或者您在专业上依赖它,请考虑 赞助维护和开发。跟踪问题和拉取请求需要时间,但我们乐于提供帮助!
Laravel Splade
你听说过 Laravel Splade 吗?🤩
它是 Inertia.js 的 魔法 与 Blade 的 简单性 的结合。Splade 提供了一种超级简单的方式,使用 Blade 模板构建单页应用程序。除了这种神奇的 SPA 感觉外,它还提供了十多个组件来让你的应用程序闪闪发光并使其交互式,而无需离开 Blade。
博客文章
如果你想了解更多关于此包背景的信息,请阅读博客文章: 用于 Laravel Dusk 等待 Inertia.js 事件的包
安装
您可以通过 composer 安装此包
composer require protonemedia/inertiajs-events-laravel-dusk --dev
将 inertiaEventsCount
对象添加到您的主 JavaScript 文件中,在创建 Vue 应用程序实例之前的位置。
window.inertiaEventsCount = { navigateCount: 0, successCount: 0, errorCount: 0, }
在创建 Vue 应用程序实例时,使用 mounted
方法来注册 事件监听器。
import { Inertia } from '@inertiajs/inertia' new Vue({ mounted() { Inertia.on('navigate', (event) => { window.inertiaEventsCount.navigateCount++; }) Inertia.on('success', (event) => { window.inertiaEventsCount.successCount++; }) Inertia.on('error', (event) => { window.inertiaEventsCount.errorCount++; }) } })
用法
此包为您的 Laravel Dusk 测试提供了三个辅助方法。
错误
可以使用 waitForInertiaError()
方法等待 Error 事件被触发。您可以使用它来断言返回验证错误的响应。
导航
可以使用 waitForInertiaNavigate()
方法等待 Navigate 事件被触发。您可以使用它来断言用户被重定向,例如,在提交表单后。
成功
可以使用 waitForInertiaSuccess()
方法等待 Success 事件触发。这对于测试提交表单后不进行重定向的表单非常有用。
示例测试
<?php namespace Tests\Browser; use App\Models\User; use Illuminate\Foundation\Testing\DatabaseMigrations; use Tests\DuskTestCase; class ExampleTest extends DuskTestCase { use DatabaseMigrations; /** * A basic browser test example. * * @return void */ public function it_can_store_a_user_and_redirect_back_to_the_index_route() { $this->browse(function ($browser) { $browser->loginAs(User::first()) ->visit(route('user.create')) ->type('name', 'New User') ->press('Submit') ->waitForInertiaNavigate() ->assertRouteIs('user.index') ->assertSee('User Added!'); }); } }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
其他 Laravel 包
Laravel Analytics Event Tracking
:一个 Laravel 包,可以轻松将事件发送到 Google Analytics。Laravel Blade On Demand
:一个 Laravel 包,用于在内存中编译 Blade 模板。Laravel Cross Eloquent Search
:一个 Laravel 包,可以搜索多个 Eloquent 模型。Laravel Eloquent Scope as Select
:停止在 PHP 中重复 Eloquent 查询作用域和约束。此包允许您通过添加为子查询来重用查询作用域和约束。Laravel Eloquent Where Not
:此 Laravel 包允许您翻转/反转 Eloquent 作用域或任何查询约束。Laravel FFMpeg
:此包为 Laravel 提供了 FFmpeg 的集成。文件的存储由 Laravel 的文件系统处理。Laravel Form Components
:Blade 组件,可用于使用 Tailwind CSS Custom Forms 和 Bootstrap 4 快速构建表单。支持验证、模型绑定、默认值、翻译,包括默认供应商样式和完全可定制!Laravel Paddle
:Paddle.com API 的 Laravel 集成,支持 webhook/events。Laravel Verify New Email
:此包增加了对新电子邮件地址进行验证的支持:当用户更新其电子邮件地址时,新地址在验证之前不会替换旧地址。Laravel WebDAV
:Laravel 文件系统的 WebDAV 驱动程序。
安全
如果您发现任何安全相关的问题,请通过电子邮件 pascal@protone.media 联系,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。
自由软件
本软件包是Treeware。如果您在生产中使用它,我们请求您为世界买一棵树以感谢我们的工作。通过为Treeware森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。