Files
BetiX/tests/Feature/Gateway/AdminControllerTest.php
Dolo 0280278978
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
Initialer Laravel Commit für BetiX
2026-04-04 18:01:50 +02:00

70 lines
1.9 KiB
PHP

<?php
namespace Tests\Feature\Gateway;
use App\Models\User;
use Illuminate\Support\Facades\Http;
use Tests\TestCase;
class AdminControllerTest extends TestCase
{
private function base(): string { return rtrim((string) config('services.backend.base'), '/'); }
private function adminUser()
{
return User::factory()->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();
}
}