createPowerCategory(); $response = $this->getJson('/api/power-categories'); $response->assertStatus(200) ->assertJsonFragment(['id' => $item->id]); } public function test_show_returns_power_category(): void { $item = $this->createPowerCategory(); $response = $this->getJson("/api/power-categories/{$item->id}"); $response->assertStatus(200) ->assertJsonFragment(['id' => $item->id]); } public function test_admin_can_create_update_and_delete_power_category(): void { $this->actingAsAdmin(); $createResponse = $this->postJson('/api/power-categories', [ 'name' => 'PWR-A', 'order' => 1, 'power_level' => 100, ]); $createResponse->assertStatus(201); $itemId = $createResponse->json('id'); $updateResponse = $this->putJson("/api/power-categories/{$itemId}", [ 'name' => 'PWR-B', 'order' => 2, 'power_level' => 200, ]); $updateResponse->assertStatus(200) ->assertJsonFragment(['id' => $itemId]); $this->deleteJson("/api/power-categories/{$itemId}") ->assertStatus(204); } public function test_non_admin_cannot_create_power_category(): void { $this->actingAsUser(); $this->postJson('/api/power-categories', [ 'name' => 'PWR-A', 'order' => 1, 'power_level' => 100, ])->assertStatus(403); } }