mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-07-25 08:14:29 +02:00
140 lines
3.3 KiB
PHP
140 lines
3.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\Wiki\Anime;
|
|
|
|
test('fails query season anime field without year', function (): void {
|
|
$animes = Anime::factory()
|
|
->count(fake()->randomDigitNotNull())
|
|
->create();
|
|
|
|
$response = $this->graphQL(
|
|
'
|
|
query($season: AnimeSeason!) {
|
|
animeyears {
|
|
year
|
|
season(season: $season) {
|
|
season
|
|
anime {
|
|
data {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
seasons {
|
|
season
|
|
anime {
|
|
data {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
',
|
|
[
|
|
'season' => $animes->random()->getAttribute(Anime::ATTRIBUTE_SEASON)->name,
|
|
],
|
|
);
|
|
|
|
$response->assertOk();
|
|
$response->assertGraphQLValidationKeys(['year']);
|
|
});
|
|
|
|
test('query season & seasons field', function (): void {
|
|
$animes = Anime::factory()
|
|
->count(fake()->randomDigitNotNull())
|
|
->create();
|
|
|
|
$response = $this->graphQL(
|
|
'
|
|
query($season: AnimeSeason!) {
|
|
animeyears {
|
|
year
|
|
season(season: $season) {
|
|
season
|
|
}
|
|
seasons {
|
|
season
|
|
}
|
|
}
|
|
}
|
|
',
|
|
[
|
|
'season' => $animes->random()->getAttribute(Anime::ATTRIBUTE_SEASON)->name,
|
|
],
|
|
);
|
|
|
|
$response->assertOk();
|
|
$response->assertJsonStructure([
|
|
'data' => [
|
|
'animeyears' => [[
|
|
'year',
|
|
'season' => [
|
|
'season',
|
|
],
|
|
]],
|
|
],
|
|
]);
|
|
});
|
|
|
|
test('query season anime field with year', function (): void {
|
|
$animes = Anime::factory()
|
|
->count(fake()->randomDigitNotNull())
|
|
->create();
|
|
|
|
$random = $animes->random();
|
|
|
|
$response = $this->graphQL(
|
|
'
|
|
query($season: AnimeSeason!, $year: [Int!]) {
|
|
animeyears(year: $year) {
|
|
year
|
|
season(season: $season) {
|
|
season
|
|
anime {
|
|
data {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
seasons {
|
|
season
|
|
anime {
|
|
data {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
',
|
|
[
|
|
'season' => $random->getAttribute(Anime::ATTRIBUTE_SEASON)->name,
|
|
'year' => $random->getAttribute(Anime::ATTRIBUTE_YEAR),
|
|
],
|
|
);
|
|
|
|
$response->assertOk();
|
|
$response->assertJsonStructure([
|
|
'data' => [
|
|
'animeyears' => [[
|
|
'year',
|
|
'season' => [
|
|
'season',
|
|
'anime' => [
|
|
'data' => [['id']],
|
|
],
|
|
],
|
|
'seasons' => [[
|
|
'season',
|
|
'anime' => [
|
|
'data' => [['id']],
|
|
],
|
|
]],
|
|
]],
|
|
],
|
|
]);
|
|
});
|