count(3)->create(); $response = $this->getJson('/api/sites'); $response->assertOk()->assertJsonCount(3, 'data'); }); test('it filters sites by partial name match', function () { Site::factory()->create(['name' => 'My Awesome Blog']); Site::factory()->create(['name' => 'Other Site']); $response = $this->getJson('/api/sites?name=Awesome'); $response->assertOk() ->assertJsonCount(1, 'data') ->assertJsonPath('data.0.name', 'My Awesome Blog'); }); test('it shows a single site', function () { $site = Site::factory()->create(['name' => 'Solo Site']); $response = $this->getJson("/api/sites/{$site->id}"); $response->assertOk()->assertJsonPath('data.name', 'Solo Site'); }); test('it returns 404 for a missing site', function () { $this->getJson('/api/sites/999')->assertNotFound(); });