christophrumpel/missing-livewire-assertions

此软件包添加缺失的 Livewire 测试断言。

v2.8.0 2024-04-11 15:23 UTC

README

CleanShot 2023-02-14 at 17 17 03@2x

此软件包添加缺失的 Livewire 测试断言

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此软件包添加了一些我测试 Livewire 应用程序时缺失的漂亮的新 Livewire 断言。如果您想了解更多关于为什么我需要它们的信息,请查看我的博客文章

➡️ 此软件包的 2.0 版本仅支持 Livewire 3。请使用此软件包的较低版本用于其他 Livewire 版本。

安装

您可以通过 composer 安装此软件包

composer require christophrumpel/missing-livewire-assertions

使用方法

新断言会自动添加,因此您可以立即使用它们。

检查 Livewire 属性是否连接到 HTML 字段

Livewire::test(FeedbackForm::class)
    ->assertPropertyWired('email');

它会在组件的视图文件中查找类似 wire:model="email" 的字符串。它也会检测到类似 wire:model.live="email"wire:model.lazy="email"wire:model.debounce="email"wire:model.lazy.10s="email"wire:model.debounce.500ms="email" 的变体。

检查 Livewire 方法是否连接到 HTML 字段

Livewire::test(FeedbackForm::class)
    ->assertMethodWired('submit');

它会在组件的视图文件中查找类似 wire:click="submit" 的字符串。

检查 Livewire 魔法动作是否连接到 HTML 字段

Livewire::test(FeedbackForm::class)
    ->assertMethodWired('$toggle(\'sortAsc\')');

检查通用 Livewire 方法是否连接到 HTML 字段

Livewire::test(FeedbackForm::class)
    ->assertMethodWiredToAction('mouseenter', 'enter');

它会在组件的视图文件中查找类似 wire:mouseenter="enter" 的字符串。请注意,它也可以查找任何事件,如 wire:keydownwire:custom-event

它会查找类似 wire:click="$refresh"wire:click="$toggle('sortAsc')$dispatch('post-created') 等字符串,以及所有其他魔法动作。在测试魔法动作时,您必须像上面那样转义单引号。

检查 Livewire 方法是否连接到 HTML 表单

Livewire::test(FeedbackForm::class)
    ->assertMethodWiredToForm('upload');

它会在组件的视图文件中查找类似 wire:submit.prevent="upload" 的字符串。

检查 Livewire 方法是否连接到特定的 JavaScript 事件

Livewire::test(FeedbackForm::class)
    ->assertMethodWiredToEvent('setValue', 'change');

它会在组件的视图文件中查找类似 wire:change.debounce.150ms="setValue" 的字符串。

您也可以检查没有附加修饰符的操作

Livewire::test(FeedbackForm::class)
    ->assertMethodWiredToEventWithoutModifiers('reset', 'keyup');

这将匹配 wire:keyup="reset",但不会匹配 wire:keyup.escape="reset"。您可以使用以下方法匹配

Livewire::test(FeedbackForm::class)
    ->assertMethodWiredToEventWithoutModifiers('reset', 'keyup.escape');

检查 Livewire 组件是否包含另一个 Livewire 组件

Livewire::test(FeedbackForm::class)
    ->assertContainsLivewireComponent(CategoryList::class);

您也可以使用组件标签名称

Livewire::test(FeedbackForm::class)
    ->assertContainsLivewireComponent('category-list');

检查 Livewire 组件是否包含 Blade 组件

Livewire::test(FeedbackForm::class)
    ->assertContainsBladeComponent(Button::class);

您也可以使用组件标签名称

Livewire::test(FeedbackForm::class)
    ->assertContainsBladeComponent('button');

检查一个字符串是否出现在另一个字符串之前

Livewire::test(FeedbackForm::class)
    ->assertSeeBefore('first string', 'second string');

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

请参阅我们的安全策略以了解如何报告安全漏洞。

鸣谢

许可证

麻省理工学院许可证(MIT)。请参阅许可证文件以获取更多信息。