ralphjsmit/pest-plugin-livewire

此包已被废弃且不再维护。未建议替代包。

Pest 用于测试 Livewire 表单的插件。

2.0 2023-04-18 17:43 UTC

This package is auto-updated.

Last update: 2024-04-14 08:13:20 UTC


README

此包提供了一种方便的方式来测试您的 Livewire 表单并加快您的工作流程。它添加了一些辅助工具,使重复任务更快,例如测试属性是否为必填项。

重要

此包仅与 Livewire V2 及以上版本和 Laravel 10 兼容。因此,它将不会更新以支持 Livewire V3 及更高版本或 Laravel 11 及更高版本。仓库将被存档。

内容

  1. 期望
    1. expect(...)->toHaveRequiredProperties()
    2. expect(...)->toNotHaveRequiredProperties()
  2. 函数
    1. assertRequiredProperties(...)
    2. assertNotRequiredProperties(...)
    3. validInput(...)

期望

expect(...)->toHaveRequiredProperties()

测试 Livewire 属性是否为必填项。考虑以下示例 Livewire 组件

class TestRequiredPropertiesComponent extends Component
{
    public string $email_Req = '';
    public string $email = '';
    public ?int $age_Req = null;
    public ?int $age = null;

    protected array $rules = [
        'email' => '',
        'email_Req' => 'required',
        'age' => 'numeric',
        'age_Req' => 'numeric|required',
    ];

    public function render(): string
    {
        return '<div></div>';
    }

    public function submit()
    {
        $this->validate();
    }
use function RalphJSmit\PestPluginLivewire\validInput;

$component = Livewire::test(TestRequiredPropertiesComponent::class);

$validInput = validInput([
    'email' => 'alex@example.com',
    'age' => 25,
]);

expect($component)
    ->toHaveRequiredProperties(validInput, ['email_Req', 'age_Req'], 'submit');

注意:目前使用 ->not 来否定测试还不被支持。

expect(...)->toNotHaveRequiredProperties()

测试 Livewire 属性是否不为必填项。让我们在上面的示例中继续进行测试,测试那些非必填的属性

use function RalphJSmit\PestPluginLivewire\validInput;

$component = Livewire::test(TestRequiredPropertiesComponent::class);

$validInput = validInput([
    'email' => 'alex@example.com',
    'age' => 25,
]);

expect($component)
    ->toNotHaveRequiredProperties(validInput, ['email', 'name'], 'submit');

注意:目前使用 ->not 来否定测试还不被支持。

函数

assertRequiredProperties()

使用此函数来测试 Livewire 属性是否为必填项。如果您想链式调用多个期望,请考虑使用 expect(...) 调用。

use function RalphJSmit\PestPluginLivewire\assertRequiredProperties;

assertRequiredProperties(TestableLivewire $livewire, Collection $validInput, array $requiredProperties, string $submitFunction);

assertNotRequiredProperties()

使用此函数来测试 Livewire 属性是否不为必填项。如果您想链式调用多个期望,请考虑使用 expect(...) 调用。

use function RalphJSmit\PestPluginLivewire\assertNotRequiredProperties;

assertNotRequiredProperties(TestableLivewire $livewire, Collection $validInput, array $requiredProperties, string $submitFunction);

validInput()

使用此函数来获取一个 ValidInput 对象(Laravel Collection)。使用上述函数时需要它。

通用

🐞 如果您发现一个错误,请提交详细的 issue,我会尽快修复。

🔐 如果您发现一个漏洞,请查阅 我们的安全策略

🙌 如果您想贡献力量,请提交 pull request。所有 PR 将获得全额认可。如果您不确定我是否会接受您的想法,请随时联系我!

🙋‍♂️ Ralph J. Smit