Files
PHP-App-Timekeeping/api/tests/api/WorkingHours/UpdateWorkingHoursCest.php
T
2025-06-19 14:19:09 +02:00

72 lines
2.7 KiB
PHP

<?php
/** @noinspection PhpUnused */
namespace TorstenHettstedt\TimekeepingApi\Tests\Api\WorkingHours;
use ApiTester;
use Codeception\Util\HttpCode;
use Helper\Api;
class UpdateWorkingHoursCest
{
public static function preflight(ApiTester $I): void
{
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
$I->haveHttpHeader('Access-Control-Request-Method', 'PUT');
$I->sendOptions('/working-hours/2020-01-15');
$I->seeResponseCodeIs(HttpCode::OK);
$I->seeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeHttpHeader('Access-Control-Allow-Methods');
$I->seeHttpHeader('Access-Control-Allow-Headers');
$I->seeHttpHeader('Access-Control-Max-Age');
}
public function updateWorkingHoursWithExistingValidRecord(ApiTester $I): void
{
$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',
'isHomeOffice' => false,
]);
$I->seeResponseCodeIs(HttpCode::OK);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::WORKING_HOURS_JSON_FORMAT);
}
public function updateWorkingHoursWithNewValidRecord(ApiTester $I): void
{
$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',
'isHomeOffice' => false,
]);
$I->seeResponseCodeIs(HttpCode::NOT_FOUND);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
}
public function updateWorkingHoursWithNewInvalidRecord(ApiTester $I): void
{
$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,
'isHomeOffice' => false,
]);
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->canSeeHttpHeader('Access-Control-Allow-Origin', Api::TEST_ORIGIN);
$I->seeResponseIsJson();
$I->seeResponseMatchesJsonType(Api::ERROR_JSON_FORMAT);
}
}