Test: Filter laut *OpenAPI* testen

This commit is contained in:
2022-02-01 15:50:49 +01:00
parent 90c6ef0c53
commit d4ddd4f32c
@@ -3,6 +3,7 @@
namespace TorstenHettstedt\TimekeepingApi\Tests\Api\WorkingHours; namespace TorstenHettstedt\TimekeepingApi\Tests\Api\WorkingHours;
use ApiTester; use ApiTester;
use Codeception\Example;
use Codeception\Util\HttpCode; use Codeception\Util\HttpCode;
use Helper\Api; use Helper\Api;
@@ -20,16 +21,54 @@ class BrowseWorkingHoursCest
$I->seeHttpHeader('Access-Control-Max-Age'); $I->seeHttpHeader('Access-Control-Max-Age');
} }
public function validWorkingHoursFilterProvider(): array
{
return [
[[null]],
[['start-date' => '2020-01-01', 'end-date' => '2020-01-08']],
[['start-date' => '2020-01-01', 'end-date' => '2020-04-30']],
[['start-date' => '2020-04-01', 'end-date' => '2020-04-30']],
];
}
/** /**
* @param ApiTester $I * @param ApiTester $I
* @param Example $example
*
* @dataProvider validWorkingHoursFilterProvider
*/ */
public function browseWorkingHours(ApiTester $I): void public function browseWorkingHours(ApiTester $I, Example $example): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/working-hours'); $I->sendGet('/working-hours', $example[0]);
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT);
} }
public function invalidWorkingHoursFilterProvider(): array
{
return [
['2020-11-31'],
['2020-11'],
['2020'],
];
}
/**
* @param ApiTester $I
* @param Example $example
*
* @dataProvider invalidWorkingHoursFilterProvider
*/
public function browseWorkingHoursWithWrongFilterDate(ApiTester $I, Example $example): void
{
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/working-hours', ['start-date' => $example[0]]);
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
}
} }