1 <?php namespace Tests\Api;
5 class ApiConfigTest extends TestCase
9 protected $endpoint = '/api/books';
11 public function test_default_item_count_reflected_in_listing_requests()
13 $this->actingAsApiEditor();
15 config()->set(['api.default_item_count' => 5]);
16 $resp = $this->get($this->endpoint);
17 $resp->assertJsonCount(5, 'data');
19 config()->set(['api.default_item_count' => 1]);
20 $resp = $this->get($this->endpoint);
21 $resp->assertJsonCount(1, 'data');
24 public function test_default_item_count_does_not_limit_count_param()
26 $this->actingAsApiEditor();
27 config()->set(['api.default_item_count' => 1]);
28 $resp = $this->get($this->endpoint . '?count=5');
29 $resp->assertJsonCount(5, 'data');
32 public function test_max_item_count_limits_listing_requests()
34 $this->actingAsApiEditor();
36 config()->set(['api.max_item_count' => 2]);
37 $resp = $this->get($this->endpoint);
38 $resp->assertJsonCount(2, 'data');
40 $resp = $this->get($this->endpoint . '?count=5');
41 $resp->assertJsonCount(2, 'data');
44 public function test_requests_per_min_alters_rate_limit()
46 $resp = $this->actingAsApiEditor()->get($this->endpoint);
47 $resp->assertHeader('x-ratelimit-limit', 180);
49 config()->set(['api.requests_per_minute' => 10]);
51 $resp = $this->actingAsApiEditor()->get($this->endpoint);
52 $resp->assertHeader('x-ratelimit-limit', 10);