create(); $response = $this->actingAs($user)->get(route('providers.index')); $response->assertOk(); $response->assertSee('Prestataires'); } public function test_can_create_a_provider(): void { $user = User::factory()->create(); $this->actingAs($user); Livewire::test('providers.form') ->set('name', 'Orange Pro') ->set('phone', '09 70 00 00 00') ->set('email', 'contact@orange-pro.fr') ->call('save') ->assertHasNoErrors(); $this->assertDatabaseHas('providers', ['name' => 'Orange Pro', 'email' => 'contact@orange-pro.fr']); } public function test_blank_optional_fields_are_stored_as_null_not_empty_strings(): void { $user = User::factory()->create(); $this->actingAs($user); Livewire::test('providers.form') ->set('name', 'Minimal Provider') ->call('save') ->assertHasNoErrors(); $provider = Provider::where('name', 'Minimal Provider')->firstOrFail(); $this->assertNull($provider->phone); $this->assertNull($provider->email); $this->assertNull($provider->website); $this->assertNull($provider->notes); } public function test_can_add_a_log_entry_to_a_provider(): void { $user = User::factory()->create(); $provider = Provider::create(['name' => 'Orange Pro']); $this->actingAs($user); Livewire::test('providers.form', ['provider' => $provider]) ->set('newLogCategory', 'contact') ->set('newLogNote', "Mail envoyé le 21/08 pour demander des précisions sur le contrat.") ->call('addLogEntry') ->assertHasNoErrors(); $this->assertDatabaseHas('provider_log_entries', [ 'provider_id' => $provider->id, 'category' => 'contact', 'created_by' => $user->id, ]); } }