mirror of
https://github.com/Karaka-Management/oms-HumanResourceTimeRecording.git
synced 2026-01-30 12:38:40 +00:00
fix tests
This commit is contained in:
parent
64b9f4323e
commit
a877ec9bee
|
|
@ -14,7 +14,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\HumanResourceTimeRecording\Controller;
|
||||
|
||||
use Modules\Admin\Models\AccountMapper;
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\HumanResourceManagement\Models\EmployeeMapper;
|
||||
use Modules\HumanResourceTimeRecording\Models\ClockingStatus;
|
||||
use Modules\HumanResourceTimeRecording\Models\ClockingType;
|
||||
use Modules\HumanResourceTimeRecording\Models\PermissionCategory;
|
||||
|
|
@ -62,6 +64,18 @@ final class ApiController extends Controller
|
|||
return;
|
||||
}
|
||||
|
||||
$account = EmployeeMapper::get()
|
||||
->with('profile')
|
||||
->where('profile/account', $request->getDataInt('account') ?? $request->header->account)
|
||||
->execute();
|
||||
|
||||
if ($account->id === 0) {
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
$this->createInvalidCreateResponse($request, $response, []);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$session = $this->createSessionFromRequest($request);
|
||||
$this->createModel($request->header->account, $session, SessionMapper::class, 'session', $request->getOrigin());
|
||||
$this->createStandardCreateResponse($request, $response, $session);
|
||||
|
|
|
|||
|
|
@ -137,19 +137,19 @@ class Session implements \JsonSerializable
|
|||
$busyTime = 0;
|
||||
$lastStart = $this->start;
|
||||
|
||||
$state = 0;
|
||||
|
||||
foreach ($this->sessionElements as $e) {
|
||||
if ($e->status === ClockingStatus::START) {
|
||||
if ($state === 0
|
||||
&& ($e->status === ClockingStatus::START || $e->status === ClockingStatus::CONTINUE)
|
||||
) {
|
||||
$lastStart = $e->datetime;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($e->status === ClockingStatus::PAUSE || $e->status === ClockingStatus::END) {
|
||||
$state = 1;
|
||||
} elseif ($state === 1
|
||||
&& ($e->status === ClockingStatus::PAUSE || $e->status === ClockingStatus::END)
|
||||
) {
|
||||
$busyTime += $e->datetime->getTimestamp() - $lastStart->getTimestamp();
|
||||
}
|
||||
|
||||
if ($e->status === ClockingStatus::CONTINUE) {
|
||||
$lastStart = $e->datetime;
|
||||
$state = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -158,19 +158,6 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$request->setData('account', 9999);
|
||||
|
||||
$this->module->apiSessionCreate($request, $response);
|
||||
self::assertEquals(RequestStatusCode::R_403, $response->header->status);
|
||||
}
|
||||
|
||||
#[\PHPUnit\Framework\Attributes\Group('module')]
|
||||
public function testApiSessionElementCreateInvalidData() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest();
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('invalid', 1);
|
||||
|
||||
$this->module->apiSessionElementCreate($request, $response);
|
||||
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ final class SessionTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals(0, $this->session->busy);
|
||||
self::assertEquals(0, $this->session->getBreak());
|
||||
self::assertEquals([], $this->session->sessionElements);
|
||||
self::assertEquals(ClockingType::OFFICE, $this->session->type);
|
||||
self::assertEquals(ClockingType::NO_DATA, $this->session->type);
|
||||
self::assertEquals(ClockingStatus::START, $this->session->getStatus());
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->session->start->format('Y-m-d'));
|
||||
self::assertNull($this->session->end);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user