2FAuth/tests/Api/v1/ThrottlingTest.php

42 lines
1.0 KiB
PHP
Raw Normal View History

<?php
2023-03-17 17:54:05 +01:00
namespace Tests\Api\v1;
use App\Models\User;
2023-08-01 11:28:27 +02:00
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Config;
2023-08-01 11:28:27 +02:00
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Test;
use Tests\FeatureTestCase;
/**
2023-08-01 11:28:27 +02:00
* ThrottlingTest test class
*/
2023-08-01 11:28:27 +02:00
#[CoversClass(RouteServiceProvider::class)]
class ThrottlingTest extends FeatureTestCase
{
#[Test]
public function test_api_calls_are_throttled_using_config()
{
/**
* @var \App\Models\User|\Illuminate\Contracts\Auth\Authenticatable
*/
2023-03-17 17:54:05 +01:00
$user = User::factory()->create();
$throttle = 5;
Config::set('2fauth.api.throttle', $throttle);
$this->actingAs($user, 'api-guard');
2023-03-17 17:54:05 +01:00
for ($i = 0; $i < $throttle - 1; $i++) {
$this->json('GET', '/api/v1/twofaccounts/count');
}
$this->json('GET', '/api/v1/twofaccounts/count')
->assertOk();
$this->json('GET', '/api/v1/twofaccounts/count')
->assertStatus(429);
}
}