protonemedia/inertiajs-events-laravel-dusk

此包已被弃用,不再维护。未建议替代包。

Inertia.js Events for Laravel Dusk

1.3.0 2023-02-21 21:40 UTC

This package is auto-updated.

Last update: 2023-08-17 21:58:26 UTC


README

Inertia.js Events for Laravel Dusk

Latest Version on Packagist run-tests Total Downloads Buy us a tree

要求

  • 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森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。