diff --git a/module/Rest/test-api/Action/ListDomainsTest.php b/module/Rest/test-api/Action/ListDomainsTest.php index 045197e8..cf3167f8 100644 --- a/module/Rest/test-api/Action/ListDomainsTest.php +++ b/module/Rest/test-api/Action/ListDomainsTest.php @@ -8,30 +8,50 @@ use Shlinkio\Shlink\TestUtils\ApiTest\ApiTestCase; class ListDomainsTest extends ApiTestCase { - /** @test */ - public function domainsAreProperlyListed(): void + /** + * @test + * @dataProvider provideApiKeysAndDomains + */ + public function domainsAreProperlyListed(string $apiKey, array $expectedDomains): void { - $resp = $this->callApiWithKey(self::METHOD_GET, '/domains'); + $resp = $this->callApiWithKey(self::METHOD_GET, '/domains', [], $apiKey); $respPayload = $this->getJsonResponsePayload($resp); self::assertEquals(self::STATUS_OK, $resp->getStatusCode()); self::assertEquals([ 'domains' => [ - 'data' => [ - [ - 'domain' => 'doma.in', - 'isDefault' => true, - ], - [ - 'domain' => 'example.com', - 'isDefault' => false, - ], - [ - 'domain' => 'some-domain.com', - 'isDefault' => false, - ], - ], + 'data' => $expectedDomains, ], ], $respPayload); } + + public function provideApiKeysAndDomains(): iterable + { + yield 'admin API key' => ['valid_api_key', [ + [ + 'domain' => 'doma.in', + 'isDefault' => true, + ], + [ + 'domain' => 'example.com', + 'isDefault' => false, + ], + [ + 'domain' => 'some-domain.com', + 'isDefault' => false, + ], + ]]; + yield 'author API key' => ['author_api_key', [ + [ + 'domain' => 'doma.in', + 'isDefault' => true, + ], + ]]; + yield 'domain API key' => ['domain_api_key', [ + [ + 'domain' => 'example.com', + 'isDefault' => false, + ], + ]]; + } }