7 class ApiConfigTest extends TestCase
11 protected $endpoint = '/api/books';
13 public function test_default_item_count_reflected_in_listing_requests()
15 $this->actingAsApiEditor();
17 config()->set(['api.default_item_count' => 5]);
18 $resp = $this->get($this->endpoint);
19 $resp->assertJsonCount(5, 'data');
21 config()->set(['api.default_item_count' => 1]);
22 $resp = $this->get($this->endpoint);
23 $resp->assertJsonCount(1, 'data');
26 public function test_default_item_count_does_not_limit_count_param()
28 $this->actingAsApiEditor();
29 config()->set(['api.default_item_count' => 1]);
30 $resp = $this->get($this->endpoint . '?count=5');
31 $resp->assertJsonCount(5, 'data');
34 public function test_max_item_count_limits_listing_requests()
36 $this->actingAsApiEditor();
38 config()->set(['api.max_item_count' => 2]);
39 $resp = $this->get($this->endpoint);
40 $resp->assertJsonCount(2, 'data');
42 $resp = $this->get($this->endpoint . '?count=5');
43 $resp->assertJsonCount(2, 'data');
46 public function test_requests_per_min_alters_rate_limit()
48 $resp = $this->actingAsApiEditor()->get($this->endpoint);
49 $resp->assertHeader('x-ratelimit-limit', 180);
51 config()->set(['api.requests_per_minute' => 10]);
53 $resp = $this->actingAsApiEditor()->get($this->endpoint);
54 $resp->assertHeader('x-ratelimit-limit', 10);