45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Gateway;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Tests\TestCase;
|
|
|
|
class VipControllerTest extends TestCase
|
|
{
|
|
private function base(): string { return rtrim((string) config('services.backend.base'), '/'); }
|
|
|
|
private function actingUser()
|
|
{
|
|
if (class_exists(User::class) && method_exists(User::class, 'factory')) {
|
|
return User::factory()->make(['id' => 1001, 'username' => 'vipuser']);
|
|
}
|
|
return new class { public $id=1001; public $username='vipuser'; public $role='User'; };
|
|
}
|
|
|
|
public function test_index_renders()
|
|
{
|
|
Http::fake([
|
|
$this->base() . '/vip-levels' => Http::response([
|
|
'claimedLevels' => [1,2],
|
|
'rewards' => [],
|
|
'stats' => ['wagered' => 0],
|
|
'vip_level' => 3,
|
|
], 200),
|
|
]);
|
|
|
|
$res = $this->actingAs($this->actingUser())->get('/vip-levels');
|
|
$res->assertStatus(200);
|
|
}
|
|
|
|
public function test_claim_success_sets_flash()
|
|
{
|
|
Http::fake([
|
|
$this->base() . '/vip-levels/claim' => Http::response(['message' => 'Reward claimed successfully!'], 200),
|
|
]);
|
|
$res = $this->actingAs($this->actingUser())->post('/vip-levels/claim', ['level' => 2]);
|
|
$res->assertSessionHas('success');
|
|
}
|
|
}
|