createAdminUser(); $this->assertTrue(Hash::check('1234', $user->admin_pin_hash)); Livewire::test(Login::class) ->call('selectUser', $user->id) ->assertSet('data.email', $user->email) ->call('appendPinDigit', 1) ->call('appendPinDigit', 2) ->call('appendPinDigit', 3) ->call('appendPinDigit', 4) ->assertSet('data.pin', '1234') ->call('authenticate') ->assertHasNoErrors() ->assertRedirect(Filament::getUrl()); } public function test_admin_cannot_authenticate_with_invalid_pin(): void { $user = $this->createAdminUser(); Livewire::test(Login::class) ->call('selectUser', $user->id) ->assertSet('data.email', $user->email) ->call('appendPinDigit', 0) ->call('appendPinDigit', 0) ->call('appendPinDigit', 0) ->call('appendPinDigit', 0) ->assertSet('data.pin', '0000') ->call('authenticate') ->assertHasErrors(['data.email']); $this->assertGuest(); } protected function createAdminUser(): User { $role = Role::firstOrCreate(['name' => 'Admin']); return User::factory()->create([ 'role_id' => $role->id, 'admin_pin_hash' => Hash::make('1234'), ]); } }