Перевод на доменную архитектуру
This commit is contained in:
58
tests/Unit/Reports/ReportInputFactoryTest.php
Normal file
58
tests/Unit/Reports/ReportInputFactoryTest.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use App\Application\Reports\ReportInputFactory;
|
||||
use App\Models\Department;
|
||||
use App\Models\User;
|
||||
use App\Services\DateRange;
|
||||
use App\Services\DateRangeService;
|
||||
use Carbon\Carbon;
|
||||
|
||||
it('builds manual generate report input from validated payload', function () {
|
||||
$user = new User;
|
||||
$user->id = 15;
|
||||
|
||||
$factory = new ReportInputFactory(app(DateRangeService::class));
|
||||
|
||||
$input = $factory->forManualSave($user, [
|
||||
'departmentId' => 10,
|
||||
'userId' => 5015,
|
||||
'dates' => [1744063200, 1744149600],
|
||||
'metrics' => ['metrika_item_4' => 11],
|
||||
'observationPatients' => [['id' => 100]],
|
||||
'unwantedEvents' => [['title' => 'A']],
|
||||
'status' => 'draft',
|
||||
'reportId' => 55,
|
||||
]);
|
||||
|
||||
expect($input->departmentId)->toBe(10)
|
||||
->and($input->userId)->toBe(5015)
|
||||
->and($input->actorUserId)->toBe(15)
|
||||
->and($input->reportId)->toBe(55)
|
||||
->and($input->metrics)->toBe(['metrika_item_4' => 11])
|
||||
->and($input->rawPayload['actorUserId'])->toBe(15);
|
||||
});
|
||||
|
||||
it('builds auto fill generate report input from scoped user and date range', function () {
|
||||
$user = new User;
|
||||
$user->id = 15;
|
||||
$user->rf_lpudoctor_id = 5015;
|
||||
|
||||
$department = new Department;
|
||||
$department->department_id = 10;
|
||||
|
||||
$dateRange = new DateRange(
|
||||
startDate: Carbon::parse('2026-04-08 06:00:00', 'Asia/Yakutsk'),
|
||||
endDate: Carbon::parse('2026-04-09 06:00:00', 'Asia/Yakutsk'),
|
||||
startDateRaw: '2026-04-08 06:00:00',
|
||||
endDateRaw: '2026-04-09 06:00:00',
|
||||
isOneDay: true,
|
||||
);
|
||||
|
||||
$factory = new ReportInputFactory(app(DateRangeService::class));
|
||||
$input = $factory->forAutoFill($user, $department, $dateRange);
|
||||
|
||||
expect($input->autoFill)->toBeTrue()
|
||||
->and($input->status)->toBe('submitted')
|
||||
->and($input->departmentId)->toBe(10)
|
||||
->and($input->userId)->toBe(5015);
|
||||
});
|
||||
Reference in New Issue
Block a user