diff --git a/module/Rest/test-api/Action/ListShortUrlsTest.php b/module/Rest/test-api/Action/ListShortUrlsTest.php index 1c7529cf..e38374c8 100644 --- a/module/Rest/test-api/Action/ListShortUrlsTest.php +++ b/module/Rest/test-api/Action/ListShortUrlsTest.php @@ -92,7 +92,7 @@ class ListShortUrlsTest extends ApiTestCase . '/considerations-to-properly-use-open-source-software-projects/', 'dateCreated' => '2019-01-01T00:00:30+00:00', 'visitsCount' => 0, - 'tags' => [], + 'tags' => ['foo'], 'meta' => [ 'validSince' => null, 'validUntil' => null, @@ -166,6 +166,7 @@ class ListShortUrlsTest extends ApiTestCase yield [['tags' => ['foo']], [ self::SHORT_URL_SHLINK, self::SHORT_URL_META, + self::SHORT_URL_CUSTOM_DOMAIN, ], 'valid_api_key']; yield [['tags' => ['bar']], [ self::SHORT_URL_META, diff --git a/module/Rest/test-api/Action/ListTagsActionTest.php b/module/Rest/test-api/Action/ListTagsActionTest.php index 9191b4e0..87b5b0c3 100644 --- a/module/Rest/test-api/Action/ListTagsActionTest.php +++ b/module/Rest/test-api/Action/ListTagsActionTest.php @@ -41,7 +41,7 @@ class ListTagsActionTest extends ApiTestCase ], [ 'tag' => 'foo', - 'shortUrlsCount' => 2, + 'shortUrlsCount' => 3, 'visitsCount' => 5, ], ], diff --git a/module/Rest/test-api/Action/TagVisitsActionTest.php b/module/Rest/test-api/Action/TagVisitsActionTest.php index d0f9838b..402b9ada 100644 --- a/module/Rest/test-api/Action/TagVisitsActionTest.php +++ b/module/Rest/test-api/Action/TagVisitsActionTest.php @@ -31,16 +31,26 @@ class TagVisitsActionTest extends ApiTestCase yield 'baz' => ['baz', 0]; } - /** @test */ - public function notFoundErrorIsReturnedForInvalidTags(): void + /** + * @test + * @dataProvider provideApiKeysAndTags + */ + public function notFoundErrorIsReturnedForInvalidTags(string $apiKey, string $tag): void { - $resp = $this->callApiWithKey(self::METHOD_GET, '/tags/invalid_tag/visits'); + $resp = $this->callApiWithKey(self::METHOD_GET, sprintf('/tags/%s/visits', $tag), [], $apiKey); $payload = $this->getJsonResponsePayload($resp); self::assertEquals(self::STATUS_NOT_FOUND, $resp->getStatusCode()); self::assertEquals(self::STATUS_NOT_FOUND, $payload['status']); self::assertEquals('TAG_NOT_FOUND', $payload['type']); - self::assertEquals('Tag with name "invalid_tag" could not be found', $payload['detail']); + self::assertEquals(sprintf('Tag with name "%s" could not be found', $tag), $payload['detail']); self::assertEquals('Tag not found', $payload['title']); } + + public function provideApiKeysAndTags(): iterable + { + yield 'admin API key with invalid tag' => ['valid_api_key', 'invalid_tag']; + yield 'domain API key with valid tag not used' => ['domain_api_key', 'bar']; + yield 'author API key with valid tag not used' => ['author_api_key', 'baz']; + } } diff --git a/module/Rest/test-api/Fixtures/ShortUrlsFixture.php b/module/Rest/test-api/Fixtures/ShortUrlsFixture.php index 3b4f2828..954d2059 100644 --- a/module/Rest/test-api/Fixtures/ShortUrlsFixture.php +++ b/module/Rest/test-api/Fixtures/ShortUrlsFixture.php @@ -72,6 +72,7 @@ class ShortUrlsFixture extends AbstractFixture implements DependentFixtureInterf $this->addReference('abc123_short_url', $abcShortUrl); $this->addReference('def456_short_url', $defShortUrl); $this->addReference('ghi789_short_url', $ghiShortUrl); + $this->addReference('example_short_url', $withDomainDuplicatingShortCode); } private function setShortUrlDate(ShortUrl $shortUrl, string $date): ShortUrl diff --git a/module/Rest/test-api/Fixtures/TagsFixture.php b/module/Rest/test-api/Fixtures/TagsFixture.php index 5d3333cc..bf16104e 100644 --- a/module/Rest/test-api/Fixtures/TagsFixture.php +++ b/module/Rest/test-api/Fixtures/TagsFixture.php @@ -34,6 +34,10 @@ class TagsFixture extends AbstractFixture implements DependentFixtureInterface $defShortUrl = $this->getReference('def456_short_url'); $defShortUrl->setTags(new ArrayCollection([$fooTag, $barTag])); + /** @var ShortUrl $exampleShortUrl */ + $exampleShortUrl = $this->getReference('example_short_url'); + $exampleShortUrl->setTags(new ArrayCollection([$fooTag])); + $manager->flush(); } }