From 16e05ce819b72a9f477b841da9816a6ea4be345d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 12 Apr 2021 15:56:35 +0200 Subject: [PATCH] =?UTF-8?q?Die=20API-Tests=20wurden=20um=20eine=20Prefligh?= =?UTF-8?q?t-=C3=9Cberpr=C3=BCfung=20erweitert,=20um=20CORS-Probleme=20zu?= =?UTF-8?q?=20vermindern.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/.env.example | 5 ++++- api/tests/_support/Helper/Api.php | 2 ++ api/tests/api/Views/BrowseWorkingHoursMonthlyCest.php | 2 ++ api/tests/api/Views/BrowseWorkingHoursWeeklyCest.php | 2 ++ api/tests/api/Views/BrowseWorkingHoursYearlyCest.php | 2 ++ api/tests/api/WorkingHours/BrowseWorkingHoursCest.php | 2 ++ api/tests/api/WorkingHours/CreateWorkingHoursCest.php | 6 ++++++ api/tests/api/WorkingHours/ReadWorkingHoursCest.php | 4 ++++ api/tests/api/WorkingHours/UpdateWorkingHoursCest.php | 6 ++++++ 9 files changed, 30 insertions(+), 1 deletion(-) diff --git a/api/.env.example b/api/.env.example index dbd9974..ccf54d0 100644 --- a/api/.env.example +++ b/api/.env.example @@ -2,4 +2,7 @@ DATABASES_HOST=psql.domain.tld DATABASES_NAME=db DATABASES_USER=user -DATABASES_PASS=1234 \ No newline at end of file +DATABASES_PASS=1234 + +## CORS Einstellungen +CORS_ALLOW_ORIGIN=localhost:* \ No newline at end of file diff --git a/api/tests/_support/Helper/Api.php b/api/tests/_support/Helper/Api.php index 3656476..0cc4f73 100644 --- a/api/tests/_support/Helper/Api.php +++ b/api/tests/_support/Helper/Api.php @@ -32,4 +32,6 @@ class Api extends Module "message" => "string", "path" => "string", ]; + + const TEST_ORIGIN = 'localhost:1234'; } diff --git a/api/tests/api/Views/BrowseWorkingHoursMonthlyCest.php b/api/tests/api/Views/BrowseWorkingHoursMonthlyCest.php index 5614233..178b85d 100644 --- a/api/tests/api/Views/BrowseWorkingHoursMonthlyCest.php +++ b/api/tests/api/Views/BrowseWorkingHoursMonthlyCest.php @@ -13,8 +13,10 @@ class BrowseWorkingHoursMonthlyCest */ public function browseWorkingHoursView(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/views/working-hours/monthly'); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); } diff --git a/api/tests/api/Views/BrowseWorkingHoursWeeklyCest.php b/api/tests/api/Views/BrowseWorkingHoursWeeklyCest.php index 6a751c5..8c00e5c 100644 --- a/api/tests/api/Views/BrowseWorkingHoursWeeklyCest.php +++ b/api/tests/api/Views/BrowseWorkingHoursWeeklyCest.php @@ -13,8 +13,10 @@ class BrowseWorkingHoursWeeklyCest */ public function browseWorkingHoursView(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/views/working-hours/weekly'); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); } diff --git a/api/tests/api/Views/BrowseWorkingHoursYearlyCest.php b/api/tests/api/Views/BrowseWorkingHoursYearlyCest.php index 4a4c0c1..96b8dd1 100644 --- a/api/tests/api/Views/BrowseWorkingHoursYearlyCest.php +++ b/api/tests/api/Views/BrowseWorkingHoursYearlyCest.php @@ -13,8 +13,10 @@ class BrowseWorkingHoursYearlyCest */ public function browseWorkingHoursView(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/views/working-hours/yearly'); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); } diff --git a/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php b/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php index bcfff03..e3d2895 100644 --- a/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php +++ b/api/tests/api/WorkingHours/BrowseWorkingHoursCest.php @@ -13,8 +13,10 @@ class BrowseWorkingHoursCest */ public function browseWorkingHours(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/working-hours'); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT); } diff --git a/api/tests/api/WorkingHours/CreateWorkingHoursCest.php b/api/tests/api/WorkingHours/CreateWorkingHoursCest.php index 725b895..803952c 100644 --- a/api/tests/api/WorkingHours/CreateWorkingHoursCest.php +++ b/api/tests/api/WorkingHours/CreateWorkingHoursCest.php @@ -12,11 +12,13 @@ class CreateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPost('/working-hours', [ 'workingDay' => '2020-04-01', 'workingTime' => '08:00:00', ]); $I->seeResponseCodeIs(HttpCode::CREATED); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT); } @@ -26,11 +28,13 @@ class CreateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPost('/working-hours', [ 'workingDay' => '2020-04-01', 'workingTime' => 8.0, ]); $I->seeResponseCodeIs(HttpCode::BAD_REQUEST); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); } @@ -40,11 +44,13 @@ class CreateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPost('/working-hours', [ 'workingDay' => '2020-01-15', 'workingTime' => '08:00:00', ]); $I->seeResponseCodeIs(HttpCode::CONFLICT); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); } diff --git a/api/tests/api/WorkingHours/ReadWorkingHoursCest.php b/api/tests/api/WorkingHours/ReadWorkingHoursCest.php index af212be..1f47db1 100644 --- a/api/tests/api/WorkingHours/ReadWorkingHoursCest.php +++ b/api/tests/api/WorkingHours/ReadWorkingHoursCest.php @@ -10,16 +10,20 @@ class ReadWorkingHoursCest { public function readExistingWorkingHours(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/working-hours/2020-01-15'); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT); } public function readNotExistingWorkingHours(ApiTester $I): void { + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendGet('/working-hours/2020-04-15'); $I->seeResponseCodeIs(HttpCode::NOT_FOUND); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); } diff --git a/api/tests/api/WorkingHours/UpdateWorkingHoursCest.php b/api/tests/api/WorkingHours/UpdateWorkingHoursCest.php index a4e433b..cfa27e1 100644 --- a/api/tests/api/WorkingHours/UpdateWorkingHoursCest.php +++ b/api/tests/api/WorkingHours/UpdateWorkingHoursCest.php @@ -12,11 +12,13 @@ class UpdateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPut('/working-hours/2020-01-15', [ 'workingDay' => '2020-01-15', 'workingTime' => '10:00:00', ]); $I->seeResponseCodeIs(HttpCode::OK); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT); } @@ -25,11 +27,13 @@ class UpdateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPut('/working-hours/2020-04-15', [ 'workingDay' => '2020-04-15', 'workingTime' => '10:00:00', ]); $I->seeResponseCodeIs(HttpCode::NOT_FOUND); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); } @@ -38,11 +42,13 @@ class UpdateWorkingHoursCest { $I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('content-type', 'application/json'); + $I->haveHttpHeader('Origin', Api::TEST_ORIGIN); $I->sendPut('/working-hours/2020-01-15', [ 'workingDay' => '2020-01-15', 'workingTime' => 8.0, ]); $I->seeResponseCodeIs(HttpCode::BAD_REQUEST); + $I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN); $I->seeResponseIsJson(); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); }