Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

sandersjj's avatar

Test a form with live events (Pest)

I'm trying to test a form that when I select a brand it should prefill the related suppliers in the next select. In my form I user the ->live() method to make the fields dependent on each other. In my test i have:

    livewire(CreateOrder::class)
        ->assertFormFieldExists('brand_id')
        ->fillForm([
            'brand_id' => $brand->id,
        ])->assertFormSet(['supplier_id' => $suppliers->pluck('id')->toArray()]);

However this doesn't work, I get the error:

Failed asserting that null matches expected 1.

  at vendor/livewire/livewire/src/Features/SupportTesting/MakesAssertions.php:93
     89▕
     90▕         if (! is_string($value) && is_callable($value)) {
     91▕             PHPUnit::assertTrue($value($actual));
     92▕         } else {
  ➜  93▕             $strict ? PHPUnit::assertSame($value, $actual) : PHPUnit::assertEquals($value, $actual);
     94▕         }
     95▕
     96▕         return $this;
     97▕     }

I have tried to log what the value is of the suppliers. And I have confirmed that the options are empty. How Can I solve this, or where can I read about testing these dependent fields. Thanks.

0 likes
3 replies
kiwi0134's avatar

Where does the fillForm method come from? Do you set a macro somewhere? To my knowledge, it's not a default method provided by Livewires Testable class.

Try to use set instead.

kiwi0134's avatar

@sandersjj Ah, I didn't realize you're using Filament. Unfortunately I do not have any experience with Filament. Sorry.

Please or to participate in this conversation.