Die API-Tests wurden um eine Preflight-Überprüfung erweitert, um CORS-Probleme zu vermindern.

This commit is contained in:
2021-04-12 15:56:35 +02:00
parent 5c15580738
commit 16e05ce819
9 changed files with 30 additions and 1 deletions
+3
View File
@@ -3,3 +3,6 @@ DATABASES_HOST=psql.domain.tld
DATABASES_NAME=db DATABASES_NAME=db
DATABASES_USER=user DATABASES_USER=user
DATABASES_PASS=1234 DATABASES_PASS=1234
## CORS Einstellungen
CORS_ALLOW_ORIGIN=localhost:*
+2
View File
@@ -32,4 +32,6 @@ class Api extends Module
"message" => "string", "message" => "string",
"path" => "string", "path" => "string",
]; ];
const TEST_ORIGIN = 'localhost:1234';
} }
@@ -13,8 +13,10 @@ class BrowseWorkingHoursMonthlyCest
*/ */
public function browseWorkingHoursView(ApiTester $I): void public function browseWorkingHoursView(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/views/working-hours/monthly'); $I->sendGet('/views/working-hours/monthly');
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT);
} }
@@ -13,8 +13,10 @@ class BrowseWorkingHoursWeeklyCest
*/ */
public function browseWorkingHoursView(ApiTester $I): void public function browseWorkingHoursView(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/views/working-hours/weekly'); $I->sendGet('/views/working-hours/weekly');
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT);
} }
@@ -13,8 +13,10 @@ class BrowseWorkingHoursYearlyCest
*/ */
public function browseWorkingHoursView(ApiTester $I): void public function browseWorkingHoursView(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/views/working-hours/yearly'); $I->sendGet('/views/working-hours/yearly');
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::WORKING_HOURS_VIEW_JSON_FORMAT);
} }
@@ -13,8 +13,10 @@ class BrowseWorkingHoursCest
*/ */
public function browseWorkingHours(ApiTester $I): void public function browseWorkingHours(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/working-hours'); $I->sendGet('/working-hours');
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$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);
} }
@@ -12,11 +12,13 @@ class CreateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPost('/working-hours', [ $I->sendPost('/working-hours', [
'workingDay' => '2020-04-01', 'workingDay' => '2020-04-01',
'workingTime' => '08:00:00', 'workingTime' => '08:00:00',
]); ]);
$I->seeResponseCodeIs(HttpCode::CREATED); $I->seeResponseCodeIs(HttpCode::CREATED);
$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);
} }
@@ -26,11 +28,13 @@ class CreateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPost('/working-hours', [ $I->sendPost('/working-hours', [
'workingDay' => '2020-04-01', 'workingDay' => '2020-04-01',
'workingTime' => 8.0, 'workingTime' => 8.0,
]); ]);
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST); $I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
} }
@@ -40,11 +44,13 @@ class CreateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPost('/working-hours', [ $I->sendPost('/working-hours', [
'workingDay' => '2020-01-15', 'workingDay' => '2020-01-15',
'workingTime' => '08:00:00', 'workingTime' => '08:00:00',
]); ]);
$I->seeResponseCodeIs(HttpCode::CONFLICT); $I->seeResponseCodeIs(HttpCode::CONFLICT);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
} }
@@ -10,16 +10,20 @@ class ReadWorkingHoursCest
{ {
public function readExistingWorkingHours(ApiTester $I): void public function readExistingWorkingHours(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/working-hours/2020-01-15'); $I->sendGet('/working-hours/2020-01-15');
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$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 readNotExistingWorkingHours(ApiTester $I): void public function readNotExistingWorkingHours(ApiTester $I): void
{ {
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendGet('/working-hours/2020-04-15'); $I->sendGet('/working-hours/2020-04-15');
$I->seeResponseCodeIs(HttpCode::NOT_FOUND); $I->seeResponseCodeIs(HttpCode::NOT_FOUND);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
} }
@@ -12,11 +12,13 @@ class UpdateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPut('/working-hours/2020-01-15', [ $I->sendPut('/working-hours/2020-01-15', [
'workingDay' => '2020-01-15', 'workingDay' => '2020-01-15',
'workingTime' => '10:00:00', 'workingTime' => '10:00:00',
]); ]);
$I->seeResponseCodeIs(HttpCode::OK); $I->seeResponseCodeIs(HttpCode::OK);
$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);
} }
@@ -25,11 +27,13 @@ class UpdateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPut('/working-hours/2020-04-15', [ $I->sendPut('/working-hours/2020-04-15', [
'workingDay' => '2020-04-15', 'workingDay' => '2020-04-15',
'workingTime' => '10:00:00', 'workingTime' => '10:00:00',
]); ]);
$I->seeResponseCodeIs(HttpCode::NOT_FOUND); $I->seeResponseCodeIs(HttpCode::NOT_FOUND);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
} }
@@ -38,11 +42,13 @@ class UpdateWorkingHoursCest
{ {
$I->haveHttpHeader('accept', 'application/json'); $I->haveHttpHeader('accept', 'application/json');
$I->haveHttpHeader('content-type', 'application/json'); $I->haveHttpHeader('content-type', 'application/json');
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->sendPut('/working-hours/2020-01-15', [ $I->sendPut('/working-hours/2020-01-15', [
'workingDay' => '2020-01-15', 'workingDay' => '2020-01-15',
'workingTime' => 8.0, 'workingTime' => 8.0,
]); ]);
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST); $I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson(); $I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT); $I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
} }