diff --git a/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php b/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php index 65a5d1b..823495f 100644 --- a/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php +++ b/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php @@ -3,6 +3,7 @@ namespace TorstenHettstedt\TimekeepingApi\Tests\Api\WorkingHours; use ApiTester; +use Codeception\Example; use Codeception\Util\HttpCode; use Helper\Api; @@ -20,16 +21,54 @@ class BrowseWorkingHoursCest $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 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->sendGet('/working-hours'); + $I->sendGet('/working-hours', $example[0]); $I->seeResponseCodeIs(HttpCode::OK); $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $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); + } }