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); });