70 lines
2.6 KiB
PHP
70 lines
2.6 KiB
PHP
<?php /** @noinspection PhpUnused */
|
|
|
|
namespace TorstenHettstedt\TimekeepingApi\Tests\Api\WorkingHours;
|
|
|
|
use ApiTester;
|
|
use Codeception\Util\HttpCode;
|
|
use Helper\Api;
|
|
|
|
class CreateWorkingHoursCest
|
|
{
|
|
public static function preflight(ApiTester $I): void
|
|
{
|
|
$I->haveHttpHeader('Origin', Api::TEST_ORIGIN);
|
|
$I->haveHttpHeader('Access-Control-Request-Method', 'POST');
|
|
$I->sendOptions('/working-hours');
|
|
$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 createWorkingHoursWithNewValidRecord(ApiTester $I): void
|
|
{
|
|
$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);
|
|
}
|
|
|
|
// tests
|
|
public function createWorkingHoursWithNewInvalidRecord(ApiTester $I): void
|
|
{
|
|
$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);
|
|
}
|
|
|
|
// tests
|
|
public function createWorkingHoursWithExistingValidRecord(ApiTester $I): void
|
|
{
|
|
$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);
|
|
}
|
|
}
|