5 use BookStack\Auth\Permissions\RolePermission;
8 class ApiConfigTest extends TestCase
12 protected $endpoint = '/api/books';
14 public function test_default_item_count_reflected_in_listing_requests()
16 $this->actingAsApiEditor();
18 config()->set(['api.default_item_count' => 5]);
19 $resp = $this->get($this->endpoint);
20 $resp->assertJsonCount(5, 'data');
22 config()->set(['api.default_item_count' => 1]);
23 $resp = $this->get($this->endpoint);
24 $resp->assertJsonCount(1, 'data');
27 public function test_default_item_count_does_not_limit_count_param()
29 $this->actingAsApiEditor();
30 config()->set(['api.default_item_count' => 1]);
31 $resp = $this->get($this->endpoint . '?count=5');
32 $resp->assertJsonCount(5, 'data');
35 public function test_max_item_count_limits_listing_requests()
37 $this->actingAsApiEditor();
39 config()->set(['api.max_item_count' => 2]);
40 $resp = $this->get($this->endpoint);
41 $resp->assertJsonCount(2, 'data');
43 $resp = $this->get($this->endpoint . '?count=5');
44 $resp->assertJsonCount(2, 'data');
47 public function test_requests_per_min_alters_rate_limit()
49 $resp = $this->actingAsApiEditor()->get($this->endpoint);
50 $resp->assertHeader('x-ratelimit-limit', 180);
52 config()->set(['api.requests_per_minute' => 10]);
54 $resp = $this->actingAsApiEditor()->get($this->endpoint);
55 $resp->assertHeader('x-ratelimit-limit', 10);