create([ 'username' => 'admin', 'role' => 'Admin', 'email_verified_at' => now() ]); } public function test_index_renders_for_admin() { Http::fake([ $this->base() . '/admin/overview' => Http::response([ 'users' => [ ['id'=>1,'username'=>'u1','balance'=>0] ], ], 200), ]); $res = $this->actingAs($this->adminUser(), 'web')->get('/admin/casino'); $res->assertStatus(200); } public function test_update_user_success_sets_flash() { $userToUpdate = User::factory()->create(); Http::fake([ $this->base() . '/admin/users/' . $userToUpdate->id => Http::response(['message' => 'User aktualisiert.'], 200), ]); $res = $this->actingAs($this->adminUser(), 'web') ->post('/admin/users/' . $userToUpdate->id, [ 'username' => 'newname', 'email' => 'new@example.com', 'vip_level' => 2 ]); $res->assertSessionHas('success'); } public function test_update_user_client_error_sets_error() { $userToUpdate = User::factory()->create(); Http::fake([ $this->base() . '/admin/users/' . $userToUpdate->id => Http::response(['message' => 'Invalid'], 400), ]); $res = $this->actingAs($this->adminUser(), 'web') ->post('/admin/users/' . $userToUpdate->id, [ 'username' => 'newname', 'email' => 'invalid-email', 'vip_level' => 999 ]); $res->assertSessionHasErrors(); } }