FAIL Tests\Unit\ApiDocsServiceTest Γ¿» public bootstrap matches ci public flags 0.04s Γ¿» full bootstrap enables try and welcome 0.02s PASS Tests\Unit\ApiLoginSecurityServiceTest Γ£ô roles object map preserves role names 0.03s Γ£ô build login response includes teacher class context 0.02s Γ£ô build login response includes teacher assistant class context PASS Tests\Unit\AuthSessionServiceTest Γ£ô sanitize redirect relative Γ£ô sanitize redirect empty Γ£ô sanitize rejects protocol relative PASS Tests\Unit\Http\Controllers\Api\AttendanceCommentTemplateControllerTest Γ£ô index returns success json 0.19s Γ£ô index passes active only true 0.02s Γ£ô show returns template 0.02s Γ£ô store returns created response 0.03s Γ£ô update returns success response 0.02s Γ£ô destroy returns success response 0.02s Γ£ô list data returns templates key 0.02s PASS Tests\Unit\Grading\ScoreValueValidatorTest Γ£ô blank score remains null Γ£ô score must be inside range Γ£ô status inference preserves legacy pending behavior PASS Tests\Unit\Listeners\DeleteUnverifiedUserListenerTest Γ£ô listener invokes service 0.02s FAIL Tests\Unit\AdditionalChargeTest Γ¿» scope by parent term filters status and orders desc Γ¿» mark applied updates status and invoice Γ¿» list all for term falls back to year Γ¿» list all for term filters by search query FAIL Tests\Unit\AdminNotificationSubjectModelTest Γ¿» admin relationship returns user Γ¿» timestamps are set on create FAIL Tests\Unit\AttendanceCommentTemplateModelTest Γ¿» get active templates filters and orders FAIL Tests\Unit\AttendanceDataTest Γ¿» get attendance by class and get attendance Γ¿» unreported term rows filters unreported Γ¿» get unreported absences and lates groups rows Γ¿» mark reported and notified updates flags FAIL Tests\Unit\AttendanceDayTest Γ¿» get or create draft creates once and reuses Γ¿» find by section date returns model or null Γ¿» submit sets submitted fields Γ¿» finalize is alias to submit Γ¿» publish sets published fields Γ¿» reopen sets reopen fields and status Γ¿» reopen rejects invalid status Γ¿» is finalized true for published or legacy finalized FAIL Tests\Unit\Models\AttendanceEmailTemplateTest Γ¿» get template returns exact active variant when available Γ¿» get template falls back to default when requested variant missing Γ¿» get template ignores inactive exact variant and uses active default Γ¿» get template returns null when no active template exists PASS Tests\Unit\Models\AttendanceRecordTest Γ£ô model metadata is converted 0.08s Γ£ô model class loads PASS Tests\Unit\Models\AttendanceTrackingTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\AuthorizedUserTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\BadgePrintLogTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CalendarTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\ClassPrepAdjustmentTest Γ¿» model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\ClassPreparationLogTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ClassProgressAttachmentTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ClassProgressReportTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ClassSectionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ClassTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\CommunicationLogTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CompetitionClassWinnerTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CompetitionScoreTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CompetitionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CompetitionWinnerTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ConfigurationTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ContactUsTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\CurrentFlagTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\DiscountUsageTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\DiscountVoucherTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\EarlyDismissalSignatureTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\EmailTemplateTest Γ¿» get template returns exact variant when active Γ¿» get template falls back to default variant Γ¿» get template ignores inactive templates and can return null Γ¿» get template prefers exact variant over default PASS Tests\Unit\Models\EmergencyContactTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\EnrollmentTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\EventChargesTest Γ¿» model metadata is converted 0.01s Γ£ô model class loads PASS Tests\Unit\Models\EventTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ExamDraftTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\ExamTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ExpenseTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\FamilyCommPrefTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\FamilyGuardianTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\FamilyStudentTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\FamilyTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\FinalExamTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\FinalScoreTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\GradingLockTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\HomeworkTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\IncidentTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\InventoryCategoryTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\InventoryItemTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\InventoryMovementTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\InvoiceEventTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\InvoiceStudentListTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\InvoiceTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\IpAttemptTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\LateSlipLogTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\LoginActivityTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ManualPaymentTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\MessageTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\MidtermExamTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\MissingScoreOverrideTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\NavItemTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\NotificationTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ParentAttendanceReportTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ParentMeetingScheduleTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ParentNotificationTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ParentTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\ParticipationTest Γ¿» model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\PasswordResetRequestTest Γ¿» model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\PasswordResetTest Γ¿» model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\PayPalPaymentTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PaymentErrorTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PaymentNotificationLogTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\PaymentTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PaymentTransactionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PaypalTransactionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PermissionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PlacementBatchTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PlacementLevelTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PlacementScoreTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PreferencesTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PrintRequestTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ProjectTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PromotionQueueTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PurchaseOrderItemTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\PurchaseOrderTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\QuizTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\RefundTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ReimbursementBatchAdminFileTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ReimbursementBatchItemTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ReimbursementBatchTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\ReimbursementTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\RoleNavItemTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\RolePermissionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\RoleTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\ScoreCommentTest Γ¿» model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\SectionTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\SemesterScoreTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\SettingsTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StaffAttendanceTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\StaffTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StatsTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StudentAllergyTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StudentClassTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StudentMedicalConditionTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\StudentTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\SubjectCurriculumTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\TeacherClassTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\TeacherSubmissionNotificationHistoryTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\TeacherTest Γ¿» model metadata is converted 0.01s Γ£ô model class loads PASS Tests\Unit\Models\UserNotificationTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\UserRoleTest Γ£ô model metadata is converted Γ£ô model class loads FAIL Tests\Unit\Models\UserTest Γ¿» model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\WhatsappGroupLinkTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\WhatsappGroupMembershipTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Models\WhatsappInviteLogTest Γ£ô model metadata is converted Γ£ô model class loads PASS Tests\Unit\Http\Requests\AttendanceCommentTemplate\StoreAttendanceCommentTemplateRequestTest Γ£ô rules pass with valid data 0.03s Γ£ô rules fail when required fields missing 0.03s Γ£ô rules fail when max score less than min score 0.02s Γ£ô rules fail when score out of range 0.03s PASS Tests\Unit\Http\Requests\AttendanceCommentTemplate\UpdateAttendanceCommentTemplateRequestTest Γ£ô rules pass with partial valid data 0.03s Γ£ô rules pass when both scores valid 0.02s Γ£ô rules fail when both scores invalid relation 0.03s Γ£ô rules fail on invalid boolean 0.02s FAIL Tests\Unit\Resources\ClassProgress\ClassProgressReportResourceTest Γ¿» resource has expected keys PASS Tests\Unit\Resources\Frontend\FrontendPageResourceTest Γ£ô resource returns page 0.03s PASS Tests\Unit\Resources\Frontend\PageContentResourceTest Γ£ô resource returns content 0.02s FAIL Tests\Unit\Resources\Messaging\MessageResourceTest Γ¿» resource returns expected shape 8.27s PASS Tests\Unit\Resources\Messaging\RecipientResourceTest Γ£ô resource returns expected shape 0.03s PASS Tests\Unit\Resources\Notifications\NotificationResourceTest Γ£ô resource returns expected shape 0.03s PASS Tests\Unit\Resources\Notifications\UserNotificationResourceTest Γ£ô resource returns expected shape 0.03s PASS Tests\Unit\Resources\Roles\PermissionResourceTest Γ£ô resource shape 0.03s PASS Tests\Unit\Resources\Roles\RolePermissionResourceTest Γ£ô resource shape 0.03s PASS Tests\Unit\Resources\Roles\RoleResourceTest Γ£ô resource shape 0.03s PASS Tests\Unit\Resources\Roles\UserWithRolesResourceTest Γ£ô resource shape 0.03s PASS Tests\Unit\Resources\Settings\SchoolCalendarEventResourceTest Γ£ô resource returns expected shape 0.03s PASS Tests\Unit\Resources\Settings\SettingsResourceTest Γ£ô resource returns expected shape 0.02s FAIL Tests\Unit\Resources\Staff\StaffResourceTest Γ¿» resource returns expected shape 0.03s PASS Tests\Unit\Resources\Support\ContactMessageResourceTest Γ£ô resource returns expected shape 0.03s FAIL Tests\Unit\Resources\Support\SupportRequestResourceTest Γ¿» resource returns expected shape 0.03s PASS Tests\Unit\Resources\Ui\UiStyleResourceTest Γ£ô resource returns expected shape 0.03s FAIL Tests\Unit\Services\Administrator\AdminNotificationSubjectServiceTest Γ¿» alerts data includes admins FAIL Tests\Unit\Services\Administrator\AdminNotificationUserServiceTest Γ¿» fetch admin notification users excludes parents FAIL Tests\Unit\Services\Administrator\AdminPrintRecipientServiceTest Γ¿» data returns admins and assigned FAIL Tests\Unit\Services\Administrator\AdministratorAbsenceServiceTest Γ¿» submit requires reason FAIL Tests\Unit\Services\Administrator\AdministratorDashboardServiceTest Γ¿» delegates to metrics and search FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentEventServiceTest Γ¿» dispatch grouped events with empty groups FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentQueryServiceTest Γ¿» enrollment withdrawal data returns structure FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentRefundServiceTest Γ¿» process refunds reports missing invoice FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentServiceTest Γ¿» delegates to query and status services FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentStatusServiceTest Γ¿» update statuses requires payload FAIL Tests\Unit\Services\Administrator\AdministratorMetricsServiceTest Γ¿» metrics returns counts FAIL Tests\Unit\Services\Administrator\AdministratorNotificationServiceTest Γ¿» delegates to subject and print services FAIL Tests\Unit\Services\Administrator\AdministratorSharedServiceTest Γ¿» get previous school year FAIL Tests\Unit\Services\Administrator\AdministratorTeacherSubmissionServiceTest Γ¿» delegates to report and notification FAIL Tests\Unit\Services\Administrator\AdministratorUserSearchServiceTest Γ¿» empty query returns no results FAIL Tests\Unit\Services\Administrator\TeacherSubmissionNotificationServiceTest Γ¿» send requires targets FAIL Tests\Unit\Services\Administrator\TeacherSubmissionReportServiceTest Γ¿» report returns summary FAIL Tests\Unit\Services\Administrator\TeacherSubmissionSupportServiceTest Γ¿» submission status labels Γ¿» build missing items FAIL Tests\Unit\Services\AssignmentServiceTest Γ¿» get current semester returns config value Γ¿» get current school year returns config value Γ¿» get assignments overview returns grouped sections Γ¿» get assignments overview uses fallback config values when metadata missing Γ¿» get assignments overview excludes inactive students Γ¿» get assignments overview sorts sections by name Γ¿» get assignments overview collects school years descending Γ¿» store assignment creates new row Γ¿» store assignment updates existing row Γ¿» get class assignment data returns all sections Γ¿» get class assignment data deduplicates teacher names FAIL Tests\Unit\Services\Assignment\AssignmentContextServiceTest Γ¿» get current term values FAIL Tests\Unit\Services\Assignment\AssignmentDataLoaderServiceTest Γ¿» load teacher classes includes teacher name Γ¿» load student classes filters inactive FAIL Tests\Unit\Services\Assignment\AssignmentMetaServiceTest Γ¿» get school years uses fallback Γ¿» get school years returns distinct sorted Γ¿» first non empty returns first value FAIL Tests\Unit\Services\Assignment\AssignmentSectionServiceTest Γ¿» get section names map FAIL Tests\Unit\Services\AttendanceManagement\AttendanceManagementServiceTest Γ¿» badge scan persists school year and semester for the event date Γ¿» dashboard derives academic context for legacy rows and applies filters FAIL Tests\Unit\Services\AttendanceTracking\AttendanceCaseQueryServiceTest Γ¿» returns not found when student missing FAIL Tests\Unit\Services\AttendanceTracking\AttendanceCommunicationSupportServiceTest Γ¿» compose requires student id Γ¿» get violation dates for student FAIL Tests\Unit\Services\AttendanceTracking\AttendanceEmailComposerServiceTest Γ¿» render template replaces tokens Γ¿» pick variant fallback FAIL Tests\Unit\Services\AttendanceTracking\AttendanceNotificationLogServiceTest Γ¿» log notification creates and updates FAIL Tests\Unit\Services\AttendanceTracking\AttendanceNotificationWorkflowServiceTest Γ¿» record requires parent email FAIL Tests\Unit\Services\AttendanceTracking\AttendanceParentLookupServiceTest Γ¿» get primary parent for student Γ¿» get secondary parent falls back to parent row FAIL Tests\Unit\Services\AttendanceTracking\AttendancePendingViolationServiceTest Γ¿» returns error when no students FAIL Tests\Unit\Services\AttendanceTracking\AttendanceTrackingServiceTest Γ¿» service instantiates FAIL Tests\Unit\Services\AttendanceTracking\AttendanceViolationStudentResolverServiceTest Γ¿» resolve for school year returns students FAIL Tests\Unit\Services\AttendanceTracking\ViolationRuleEngineServiceTest Γ¿» school year helpers Γ¿» window weeks for violation code FAIL Tests\Feature\Api\Attendance\AdminAttendanceApiControllerTest Γ¿» daily data returns success FAIL Tests\Unit\Services\Attendance\AttendanceAutoPublishJobServiceTest Γ¿» run publishes due records PASS Tests\Unit\Services\Attendance\AttendanceAutoPublishServiceTest Γ£ô second sunday after end of day 0.04s Γ£ô second sunday backward date 0.04s FAIL Tests\Unit\Services\Attendance\AttendanceCommentServiceTest Γ¿» comment from score uses template and name Γ¿» comment from score falls back to this student FAIL Tests\Unit\Services\Attendance\AttendanceConsequenceServiceTest Γ¿» send follow up requires parent email Γ¿» send follow up marks tracking and notifies FAIL Tests\Unit\Services\Attendance\AttendanceDailySummaryServiceTest Γ¿» send absentees summary notifies parent FAIL Tests\Unit\Services\Attendance\AttendancePolicyServiceTest Γ¿» teacher can edit draft Γ¿» teacher cannot edit finalized Γ¿» admin like by permission Γ¿» can manage early dismissals for teacher FAIL Tests\Unit\Services\Attendance\AttendanceQueryServiceTest Γ¿» teacher grid returns section labels and grid FAIL Tests\Unit\Services\Attendance\AttendanceRecordSyncServiceTest Γ¿» update attendance record adjusts totals Γ¿» add new attendance record creates row FAIL Tests\Unit\Services\Attendance\AttendanceSemesterRangeServiceTest Γ¿» get semester range Γ¿» build sunday list returns sundays FAIL Tests\Unit\Services\Attendance\AttendanceServiceTest Γ¿» update attendance management throws when locked Γ¿» update attendance management saves row FAIL Tests\Unit\Services\Attendance\AttendanceSummaryRebuildServiceTest Γ¿» rebuild inserts summary rows FAIL Tests\Unit\Services\Attendance\LateSlipLogCommandServiceTest Γ¿» delete removes log FAIL Tests\Unit\Services\Attendance\LateSlipLogQueryServiceTest Γ¿» paginate filters by date FAIL Tests\Unit\Services\Attendance\SemesterRangeServiceTest Γ£ô normalize semester Γ¿» get school year range Γ£ô build sunday list FAIL Tests\Feature\Api\Attendance\StaffAttendanceApiControllerTest Γ¿» month data returns success Γ¿» admins data returns success FAIL Tests\Unit\Services\Attendance\StaffAttendanceServiceTest Γ¿» month data returns sections and days FAIL Tests\Unit\Services\Attendance\StudentAttendanceWriterServiceTest Γ¿» resolve student school id from student Γ¿» save or update updates existing and syncs record FAIL Tests\Feature\Api\Attendance\TeacherAttendanceApiControllerTest Γ¿» teacher grid endpoint returns success Γ¿» teacher form endpoint returns success or validation message FAIL Tests\Unit\Services\Attendance\TeacherAttendanceSubmissionServiceTest Γ¿» submit requires attendance data FAIL Tests\Unit\Services\Auth\PasswordResetCleanupServiceTest Γ¿» cleanup removes old requests FAIL Tests\Unit\Services\Auth\PermissionCheckServiceTest Γ¿» has permission returns true when assigned FAIL Tests\Unit\Services\Auth\RegistrationCaptchaServiceTest Γ¿» generate sets cache value Γ¿» verify and clear FAIL Tests\Unit\Services\Auth\RegistrationFormatterServiceTest Γ¿» format normalizes parent fields Γ¿» format includes second parent when present FAIL Tests\Unit\Services\Auth\RegistrationServiceTest Γ¿» register creates parent user Γ¿» register rejects pending activation FAIL Tests\Unit\Services\Auth\UserRoleServiceTest Γ¿» has permission for crud checks roles FAIL Tests\Unit\Services\Badges\BadgeFormDataServiceTest Γ¿» build formats users and assigns latest class for teacherish roles 0.04s Γ¿» build defaults invalid active role to teacher 0.02s FAIL Tests\Unit\Services\Badges\BadgePdfServiceTest Γ¿» generate returns pdf response and logs prints 0.04s Γ¿» generate returns empty state pdf when no valid users found 0.02s Γ¿» generate deduplicates same badge content 0.02s PASS Tests\Unit\Services\Badges\BadgePrintLogServiceTest Γ£ô get status normalizes ids before calling model 0.04s Γ£ô log normalizes ids and returns inserted count 0.03s Γ£ô log safely swallows exceptions and logs error 0.04s PASS Tests\Unit\Services\Badges\BadgeTextFormatterTest Γ£ô normalize ids filters and deduplicates 0.04s Γ£ô norm removes extra spaces and control chars 0.02s Γ£ô format role handles special words and acronyms 0.02s Γ£ô format roles csv formats each role 0.02s Γ£ô format class normalizes known values 0.03s Γ£ô resolve role prefers first available candidate 0.02s Γ£ô to pdf returns string 0.03s Γ£ô fit text returns size within bounds 0.04s FAIL Tests\Unit\Services\Billing\BalanceCalculationServiceTest Γ¿» calculate family account applies balance formula Γ¿» overpayment records account credit Γ¿» student rows include event charges FAIL Tests\Unit\Services\Billing\BillingTotalsServiceTest Γ¿» event and additional subtotals Γ¿» additional subtotal by parent sums applied charges Γ¿» event subtotals by student groups amounts FAIL Tests\Unit\Services\Billing\ChargeServiceTest Γ¿» create extra charge blocks duplicate Γ¿» create event charge blocks duplicate Γ¿» create event charge succeeds Γ¿» cancel event charge zeros charge and creates credit Γ¿» apply extra charge marks applied Γ¿» list for parent returns both charge types PASS Tests\Unit\Services\BroadcastEmail\BroadcastEmailComposerServiceTest Γ£ô sanitize removes script and events 0.03s Γ£ô compose replaces name when personalized 0.02s FAIL Tests\Unit\Services\BroadcastEmail\BroadcastEmailRecipientServiceTest Γ¿» parents with emails filters missing email Γ¿» recipients by ids returns names PASS Tests\Unit\Services\BroadcastEmail\BroadcastEmailSenderOptionsServiceTest Γ£ô list options from env 0.03s FAIL Tests\Unit\Services\CertificateAdminServiceTest Γ¿» dashboard groups students and uses saved decisions as source of truth Γ¿» issue certificates reuses existing record and creates new one for unissued pass students Γ¿» audit log returns year summary and filtered records FAIL Tests\Unit\Services\ClassPrep\ClassRosterServiceTest Γ¿» list students by class FAIL Tests\Unit\Services\ClassPrep\StickerCountServiceTest Γ¿» list all returns totals excluding youth Γ¿» list for class limits results FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationAdjustmentServiceTest Γ¿» apply adjustments updates counts FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationAdjustmentWriterServiceTest Γ¿» save adjustments persists allowed items FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationCalculatorServiceTest Γ¿» get class level by section Γ¿» calculate prep items for lower grades FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationContextServiceTest Γ¿» has roster for semester FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationInventoryServiceTest Γ¿» build availability uses max value FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationLogServiceTest Γ¿» has prep changed detects diff Γ¿» create log and get latest FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationPrintServiceTest Γ¿» print prep creates log Γ¿» print prep handles log failure FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationRosterServiceTest Γ¿» get class section student counts Γ¿» get student count for section FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationServiceTest Γ¿» list prep returns sections and totals Γ¿» mark printed creates logs FAIL Tests\Unit\Services\ClassProgress\ClassProgressAttachmentServiceTest Γ¿» store attachments persists records PASS Tests\Unit\Services\ClassProgress\ClassProgressMetaServiceTest Γ£ô subject sections return configured values 0.03s FAIL Tests\Unit\Services\ClassProgress\ClassProgressMutationServiceTest Γ¿» create reports persists multiple subjects Γ¿» update report changes status Γ¿» delete report removes record FAIL Tests\Unit\Services\ClassProgress\ClassProgressQueryServiceTest Γ¿» list reports filters by class section PASS Tests\Unit\Services\ClassProgress\ClassProgressRuleServiceTest Γ£ô build unit chapter summary limits length Γ£ô ensure week end defaults to six days FAIL Tests\Unit\Services\ClassSections\ClassAttendanceServiceTest Γ¿» get attendance payload includes students FAIL Tests\Unit\Services\ClassSections\ClassSectionCommandServiceTest Γ¿» create update delete FAIL Tests\Unit\Services\ClassSections\ClassSectionQueryServiceTest Γ¿» list filters by search FAIL Tests\Unit\Services\ClassSections\ClassSectionSeedServiceTest Γ¿» seed defaults creates rows FAIL Tests\Unit\Services\Communication\CommunicationTemplateServiceTest Γ¿» list active templates maps columns FAIL Tests\Unit\Services\CompetitionScores\CompetitionScoresSaveServiceTest Γ¿» filter scores rejects non integers Γ¿» save scores upserts FAIL Tests\Unit\Services\Dashboard\DashboardRouteServiceTest Γ¿» resolve returns fallback when no roles Γ¿» resolve returns dashboard route for role FAIL Tests\Unit\Services\Discounts\DiscountApplyServiceTest Γ¿» apply voucher returns error when no remaining uses FAIL Tests\Unit\Services\Email\EmailExtractorServiceTest Γ¿» list and compare emails PASS Tests\Unit\Services\Email\EmailProfileServiceTest Γ£ô resolve profile maps aliases 0.04s Γ£ô env key from profile 0.02s Γ£ô sanitize reply to name 0.02s FAIL Tests\Unit\Services\EmergencyContacts\EmergencyContactDirectoryServiceTest Γ¿» groups include parent students contacts and phones PASS Tests\Unit\Services\Events\EventCategoryServiceTest Γ£ô categories returns list 0.03s FAIL Tests\Unit\Services\Events\EventChargeQueryServiceTest Γ¿» list returns paginated charges FAIL Tests\Unit\Services\Events\EventChargeServiceTest Γ¿» seed charges creates event charges FAIL Tests\Unit\Services\Events\EventListServiceTest Γ¿» list filters active events FAIL Tests\Unit\Services\Events\EventManagementServiceTest Γ¿» update returns not found FAIL Tests\Unit\Services\Events\EventStudentChargeServiceTest Γ¿» list students with charges FAIL Tests\Unit\Services\Exams\ExamDraftTeacherServiceTest Γ¿» store creates draft FAIL Tests\Unit\Services\Expenses\ExpenseReceiptServiceTest Γ¿» store receipt returns filename and url FAIL Tests\Unit\Services\Expenses\ExpenseStaffServiceTest Γ¿» list staff users excludes parents FAIL Tests\Unit\Services\ExtraCharges\ExtraChargesMetaServiceTest Γ¿» get school years uses fallback Γ¿» get school years merges sources FAIL Tests\Unit\Services\Families\FamilyFinanceServiceTest Γ¿» load financials for parents returns summary FAIL Tests\Unit\Services\Families\FamilyMutationServiceTest Γ¿» bootstrap creates family Γ¿» attach second by email creates guardian Γ¿» set primary home updates flag FAIL Tests\Unit\Services\Families\FamilyNotificationServiceTest Γ¿» send compose email delegates to dispatcher FAIL Tests\Unit\Services\Families\FamilyQueryServiceTest Γ¿» admin index returns families Γ¿» search suggestions returns items Γ¿» family card returns payload PASS Tests\Unit\Services\FeeCalculationServiceTest Γ£ô calculate refund returns calculator amount 0.04s PASS Tests\Unit\Services\Fees\FeeGradeServiceTest Γ£ô grade level parsing 0.04s Γ£ô compare grades orders numeric then suffix 0.02s FAIL Tests\Unit\Services\Fees\FeeRefundCalculatorServiceTest Γ¿» calculate refund caps at total paid Γ¿» returns zero when parent has no payments Γ¿» returns zero when no withdrawn students Γ¿» withdrawn student breakdown carries assigned tuition fee Γ¿» multi student family only refunds withdrawn students Γ¿» withdrawal after deadline is not eligible Γ¿» missing withdrawal date is skipped with reason FAIL Tests\Unit\Services\Fees\FeeRefundDetailServiceTest Γ¿» calculate refund details returns amount FAIL Tests\Unit\Services\Fees\FeeStudentFeeServiceTest Γ¿» total tuition fee applies tiers and youth fee Γ¿» assign fees stores tuition fee and fee category on each student Γ¿» calculate breakdown includes billable and non billable students Γ¿» is billable and is withdrawn classifiers FAIL Tests\Unit\Services\Fees\TuitionCalculationServiceTest Γ¿» calculate returns family total and per student breakdown Γ¿» calculate excludes non billable students from family total Γ¿» calculate applies per student discount Γ¿» family total helper FAIL Tests\Unit\Services\Files\ExamDraftDownloadNameServiceTest Γ¿» build returns slugified name FAIL Tests\Unit\Services\Files\FileServeServiceTest Γ¿» meta returns file metadata Γ¿» serve inline returns 304 when etag matches Γ¿» serve inline rejects invalid extension FAIL Tests\Unit\Services\Finance\FinancialChartServiceTest Γ¿» generate charts returns null in tests FAIL Tests\Unit\Services\Finance\FinancialPaymentServiceTest Γ¿» payment aggregates exclude void statuses FAIL Tests\Unit\Services\Finance\FinancialPdfReportServiceTest Γ¿» build pdf returns bytes FAIL Tests\Unit\Services\Finance\FinancialReportServiceTest Γ¿» report returns grouped data FAIL Tests\Unit\Services\Finance\FinancialSchoolYearServiceTest Γ¿» list years returns distinct sorted years FAIL Tests\Unit\Services\Finance\FinancialSummaryServiceTest Γ¿» summary calculates totals FAIL Tests\Unit\Services\Finance\FinancialUnpaidParentsServiceTest Γ¿» unpaid parents returns installment data FAIL Tests\Unit\Services\Frontend\ContactSubmissionServiceTest Γ¿» submit creates contact record PASS Tests\Unit\Services\Frontend\FrontendPageServiceTest Γ£ô page returns payload 0.03s FAIL Tests\Unit\Services\Frontend\LandingPageContextServiceTest Γ¿» context returns config values FAIL Tests\Unit\Services\Frontend\LandingPageParentDashboardServiceTest Γ¿» summary returns parent payload FAIL Tests\Unit\Services\Frontend\LandingPageRoleServiceTest Γ¿» resolve role returns guest when missing Γ¿» resolve role returns first role FAIL Tests\Unit\Services\Frontend\LandingPageServiceTest Γ¿» dashboard for user returns guest Γ¿» dashboard for user returns admin FAIL Tests\Unit\Services\Frontend\LandingPageTeacherSummaryServiceTest Γ¿» summary returns dashboard payload FAIL Tests\Unit\Services\Frontend\ProfileIconServiceTest Γ¿» build for user returns initials PASS Tests\Unit\Services\Frontend\StaticPageServiceTest Γ£ô load returns content 0.04s Γ£ô load missing returns error 0.03s FAIL Tests\Unit\Services\Grading\BelowSixtyEmailServiceTest Γ¿» send requires student id Γ¿» send delivers to guardians FAIL Tests\Unit\Services\Grading\GradingBelowSixtyServiceTest Γ¿» list rows returns students below sixty FAIL Tests\Unit\Services\Grading\GradingLockServiceTest Γ¿» toggle creates lock Γ¿» lock all locks sections FAIL Tests\Unit\Services\Grading\HomeworkTrackingServiceTest Γ¿» report returns teacher rows FAIL Tests\Unit\Services\Incidents\IncidentAnalysisServiceTest Γ¿» analyze groups incidents by student FAIL Tests\Unit\Services\Incidents\IncidentHistoryServiceTest Γ¿» processed enriches grade and updater names FAIL Tests\Unit\Services\Incidents\IncidentLookupServiceTest Γ¿» grade options with active students Γ¿» updater name map FAIL Tests\Unit\Services\Inventory\InventoryCategoryServiceTest Γ¿» create category Γ¿» update category FAIL Tests\Unit\Services\Inventory\InventoryItemServiceTest Γ¿» create creates item and movement Γ¿» update updates item FAIL Tests\Unit\Services\Inventory\InventoryMovementServiceTest Γ¿» create movement FAIL Tests\Unit\Services\Inventory\InventorySummaryServiceTest Γ¿» summary returns items FAIL Tests\Unit\Services\Inventory\InventoryTeacherDistributionServiceTest Γ¿» form data requires teacher role Γ¿» distribute success FAIL Tests\Unit\Services\Inventory\SupplierServiceTest Γ¿» create supplier Γ¿» update supplier FAIL Tests\Unit\Services\Inventory\SupplyCategoryServiceTest Γ¿» create category Γ¿» update category FAIL Tests\Unit\Services\Invoices\InvoiceConfigServiceTest Γ¿» config service reads values FAIL Tests\Unit\Services\Invoices\InvoiceGenerationServiceTest Γ¿» generate invoice creates new invoice FAIL Tests\Unit\Services\Invoices\InvoiceGradeServiceTest Γ¿» grade parsing handles common cases Γ¿» compare grades orders numeric then suffix FAIL Tests\Unit\Services\Invoices\InvoiceManagementServiceTest Γ¿» management data returns parent invoice summary FAIL Tests\Unit\Services\Invoices\InvoicePaymentServiceTest Γ¿» parent invoice summary includes refunds and last payment FAIL Tests\Unit\Services\Invoices\InvoicePdfServiceTest Γ¿» build pdf returns bytes FAIL Tests\Unit\Services\Invoices\InvoiceServiceTest Γ¿» has class assignment returns true FAIL Tests\Unit\Services\Invoices\InvoiceTuitionServiceTest Γ¿» calculate tuition fee counts regular and youth Γ¿» refund deadline includes withdrawn when passed FAIL Tests\Unit\Services\Messaging\MessageCommandServiceTest Γ¿» create sends message Γ¿» create rejects invalid role FAIL Tests\Unit\Services\Messaging\MessageQueryServiceTest Γ¿» inbox filters messages FAIL Tests\Unit\Services\Messaging\MessageRecipientServiceTest Γ¿» teachers returns list Γ¿» parents returns list FAIL Tests\Unit\Services\Navigation\NavBuilderServiceTest Γ¿» save creates nav item and roles Γ¿» reorder updates sort order FAIL Tests\Unit\Services\Navigation\NavbarServiceTest Γ¿» get menu for roles builds tree FAIL Tests\Unit\Services\Notifications\NotificationActiveServiceTest Γ¿» list filters by target group FAIL Tests\Unit\Services\Notifications\NotificationCleanupServiceTest Γ¿» cleanup expired soft deletes rows FAIL Tests\Unit\Services\Notifications\NotificationDeletedServiceTest Γ¿» list returns deleted notifications PASS Tests\Unit\Services\Notifications\NotificationDispatchServiceTest Γ£ô dispatch logs email and sms 0.58s FAIL Tests\Unit\Services\Notifications\NotificationManagementServiceTest Γ¿» update modifies notification Γ¿» update returns false when missing Γ¿» delete and restore notification FAIL Tests\Unit\Services\Notifications\NotificationReadServiceTest Γ¿» mark read updates row Γ¿» mark read returns false when missing FAIL Tests\Unit\Services\Notifications\NotificationRecipientServiceTest Γ¿» get recipients by role FAIL Tests\Unit\Services\Notifications\NotificationSendServiceTest Γ¿» send creates notification and user notifications FAIL Tests\Unit\Services\Notifications\NotificationShowServiceTest Γ¿» get for user returns notification Γ¿» get for user returns null when missing PASS Tests\Unit\Services\Notifications\NotificationTriggerServiceTest Γ£ô trigger dispatches event 0.04s Γ£ô to user dispatches event 0.02s FAIL Tests\Unit\Services\Notifications\NotificationUserListServiceTest Γ¿» list filters by read status FAIL Tests\Unit\Services\Notifications\UserNotificationDispatchServiceTest Γ¿» notify user creates notification Γ¿» notify user rejects invalid user FAIL Tests\Unit\Services\Parents\ParentAttendanceReportServiceTest Γ¿» form data returns students FAIL Tests\Unit\Services\Parents\ParentAttendanceServiceTest Γ¿» list attendance returns rows FAIL Tests\Unit\Services\Parents\ParentConfigServiceTest Γ¿» context returns config values FAIL Tests\Unit\Services\Parents\ParentEmergencyContactServiceTest Γ¿» store creates contact FAIL Tests\Unit\Services\Parents\ParentEnrollmentServiceTest Γ¿» overview returns students FAIL Tests\Unit\Services\Parents\ParentInvoiceServiceTest Γ¿» list invoices filters by parent FAIL Tests\Unit\Services\Parents\ParentRegistrationServiceTest Γ¿» register creates student and contact FAIL Tests\Unit\Services\Payments\PaymentBalanceServiceTest Γ¿» update balance adjusts payment totals FAIL Tests\Unit\Services\Payments\PaymentEnrollmentEventServiceTest Γ¿» build event data requires parent Γ¿» build event data returns parent payload when no students FAIL Tests\Unit\Services\Payments\PaymentEventChargesServiceTest Γ¿» get enrolled students returns grade FAIL Tests\Unit\Services\Payments\PaymentLookupServiceTest Γ¿» get by parent filters school year FAIL Tests\Unit\Services\Payments\PaymentManualServiceTest Γ¿» record payment rejects invalid method Γ¿» suggest returns matches FAIL Tests\Unit\Services\Payments\PaymentMissedCheckServiceTest Γ¿» find users with missed payments Γ¿» send reminders sends email and notification FAIL Tests\Unit\Services\Payments\PaymentNotificationDispatchServiceTest Γ¿» notify user creates notification records FAIL Tests\Unit\Services\Payments\PaymentNotificationServiceTest Γ¿» send records log and returns sent count Γ¿» list logs filters by type FAIL Tests\Unit\Services\Payments\PaymentPlanServiceTest Γ¿» create plan uses defaults when missing FAIL Tests\Unit\Services\Payments\PaymentTestNotificationServiceTest Γ¿» send logs and sends email FAIL Tests\Unit\Services\Payments\PaymentTransactionServiceTest Γ¿» create and update transaction FAIL Tests\Unit\Services\Payments\PaypalPaymentServiceTest Γ¿» create payment falls back to hosted when sdk missing Γ¿» execute payment throws when sdk missing FAIL Tests\Unit\Services\Payments\PaypalPaymentSyncServiceTest Γ¿» sync applies payment and marks synced FAIL Tests\Unit\Services\Payments\PaypalTransactionsServiceTest Γ¿» list all filters by keyword FAIL Tests\Unit\Services\Phone\PhoneFormatterServiceTest Γ¿» format returns null for invalid Γ¿» format formats digits FAIL Tests\Unit\Services\Policy\PolicyContentServiceTest Γ¿» get policy returns content FAIL Tests\Unit\Services\Preferences\PreferencesCommandServiceTest Γ¿» upsert creates record FAIL Tests\Unit\Services\Preferences\PreferencesOptionsServiceTest Γ¿» defaults include expected keys FAIL Tests\Unit\Services\Preferences\PreferencesQueryServiceTest Γ¿» get for user returns defaults when missing Γ¿» paginate filters by user id FAIL Tests\Unit\Services\Promotions\LevelProgressionServiceTest Γ¿» seed defaults creates baseline levels Γ¿» resolve by class id uses mapping when present Γ¿» resolve falls back to class id plus one when no mapping Γ¿» upsert mapping updates existing row FAIL Tests\Unit\Services\Promotions\PromotionEligibilityServiceTest Γ¿» passing student becomes awaiting parent enrollment Γ¿» failing student becomes repeated Γ¿» missing scores marks on hold Γ¿» terminal level is graduated Γ¿» audit log records status changes FAIL Tests\Unit\Services\Promotions\PromotionEnrollmentServiceTest Γ¿» completing checklist finalises promotion and creates enrollment Γ¿» partial checklist keeps status in progress Γ¿» submit requires complete checklist Γ¿» other parent cannot act on record Γ¿» expired records become not enrolled FAIL Tests\Unit\Services\Promotions\PromotionStatusServiceTest Γ¿» allowed transition updates status and audit log Γ¿» disallowed transition throws Γ¿» force status bypasses transition map Γ¿» no op transition returns record unchanged FAIL Tests\Unit\Services\PurchaseOrders\PurchaseOrderCreateServiceTest Γ¿» create persists purchase order and items FAIL Tests\Unit\Services\PurchaseOrders\PurchaseOrderReceiveServiceTest Γ¿» receive updates items and inventory FAIL Tests\Unit\Services\PurchaseOrders\PurchaseOrderStatusServiceTest Γ¿» cancel marks purchase order canceled FAIL Tests\Unit\Services\Refunds\RefundDecisionServiceTest Γ¿» approve updates refund status FAIL Tests\Unit\Services\Refunds\RefundInvoiceAdjustmentServiceTest Γ¿» apply book charge inserts additional charge FAIL Tests\Unit\Services\Refunds\RefundNotificationServiceTest Γ¿» notify pending logs event FAIL Tests\Unit\Services\Refunds\RefundOverpaymentServiceTest Γ¿» recalculate creates overpayment refund FAIL Tests\Unit\Services\Refunds\RefundPayoutServiceTest Γ¿» record payment marks partial FAIL Tests\Unit\Services\Refunds\RefundPolicyServiceTest Γ¿» process withdrawal refund creates refund FAIL Tests\Unit\Services\Refunds\RefundQueryServiceTest Γ¿» list filters by status FAIL Tests\Unit\Services\Refunds\RefundRequestServiceTest Γ¿» request overpayment creates refund FAIL Tests\Unit\Services\Refunds\RefundSummaryServiceTest Γ¿» summary calculates unapplied balance FAIL Tests\Unit\Services\Reimbursements\ReimbursementBatchAssignmentServiceTest Γ¿» assign and unassign batch item FAIL Tests\Unit\Services\Reimbursements\ReimbursementBatchServiceTest Γ¿» create batch assigns sequence and title FAIL Tests\Unit\Services\Reimbursements\ReimbursementDonationServiceTest Γ¿» mark donation updates expense and unassigns FAIL Tests\Unit\Services\Reimbursements\ReimbursementRecipientServiceTest Γ¿» recipient options include staff and specials FAIL Tests\Unit\Services\Reports\ReportCards\ReportCardServiceTest Γ¿» meta returns data sets Γ¿» completeness returns summary Γ¿» acknowledgement returns signed data Γ¿» generate single report returns pdf Γ¿» generate single report handles missing scores PASS Tests\Unit\Services\Reports\SlipPrinterFormatterServiceTest Γ£ô to db date parses us format 0.04s Γ£ô to db time parses string 0.02s PASS Tests\Unit\Services\Reports\Stickers\StickerPresetServiceTest Γ£ô presets include alias fields 0.03s FAIL Tests\Unit\Services\Reports\Stickers\StickerPrintServiceTest Γ¿» generate returns pdf content Γ¿» generate returns error when no students FAIL Tests\Unit\Services\Reports\Stickers\StickerQueryServiceTest Γ¿» list students by class returns rows Γ¿» list students for print all excludes youth and kg FAIL Tests\Unit\Services\Roles\PermissionCrudServiceTest Γ¿» create and update permission FAIL Tests\Unit\Services\Roles\RoleAssignmentServiceTest Γ¿» assign roles creates user roles and staff FAIL Tests\Unit\Services\Roles\RoleCrudServiceTest Γ¿» create and update role FAIL Tests\Unit\Services\Roles\RoleDashboardServiceTest Γ¿» best dashboard route for returns route FAIL Tests\Unit\Services\Roles\RolePermissionServiceTest Γ¿» save role permissions persists rows FAIL Tests\Unit\Services\Roles\RoleQueryServiceTest Γ¿» list roles returns paginator Γ¿» list users with roles returns roles FAIL Tests\Unit\Services\Roles\RoleSwitchServiceTest Γ¿» get user role names returns roles FAIL Tests\Unit\Services\SchoolIds\SchoolIdAssignmentServiceTest Γ¿» assigns school id when missing Γ¿» assign returns existing school id FAIL Tests\Unit\Services\SchoolIds\SchoolIdGenerationServiceTest Γ¿» generates student school id with prefix Γ¿» generates user school id with prefix FAIL Tests\Unit\Services\School\AccountEventServiceTest Γ¿» new account added creates family links Γ¿» delete unverified user handles missing admin emails FAIL Tests\Unit\Services\School\EnrollmentEventServiceTest Γ¿» admission under review sends email 0.05s Γ¿» admission under review requires email 0.02s FAIL Tests\Unit\Services\School\PaymentEventServiceTest Γ¿» payment received sends email 0.03s Γ¿» extra charge requires email 0.04s FAIL Tests\Unit\Services\School\SemesterSelectionServiceTest Γ¿» selected teacher semester prefers session value Γ¿» selected teacher semester falls back to config FAIL Tests\Unit\Services\Scores\AttendanceCalculatorTest Γ¿» calculate uses configured days FAIL Tests\Unit\Services\Scores\ExamScoreServiceTest Γ¿» list returns latest exam score Γ¿» update creates exam score and missing override FAIL Tests\Unit\Services\Scores\HomeworkCalculatorTest Γ¿» calculate returns average score FAIL Tests\Unit\Services\Scores\HomeworkScoreServiceTest Γ¿» list includes semester variants Γ¿» add column inserts next index FAIL Tests\Unit\Services\Scores\ParticipationScoreServiceTest Γ¿» list returns participation scores Γ¿» update updates existing scores FAIL Tests\Unit\Services\Scores\ProjectCalculatorTest Γ¿» calculate returns average score FAIL Tests\Unit\Services\Scores\ProjectScoreServiceTest Γ¿» list returns headers and scores Γ¿» update creates scores and missing overrides Γ¿» add column inserts next index FAIL Tests\Unit\Services\Scores\QuizCalculatorTest Γ¿» calculate returns average score FAIL Tests\Unit\Services\Scores\QuizScoreServiceTest Γ¿» list returns headers and scores Γ¿» update creates scores and missing overrides Γ¿» add column inserts next index FAIL Tests\Unit\Services\Scores\ScoreCommentServiceTest Γ¿» list returns comments for students Γ¿» save returns validation errors for short comment FAIL Tests\Unit\Services\Scores\ScoreDashboardServiceTest Γ¿» overview returns students and scores Γ¿» view student scores groups by year and semester FAIL Tests\Unit\Services\Scores\ScorePredictorServiceTest Γ¿» report builds predictions FAIL Tests\Unit\Services\Scores\ScoreTermServiceTest Γ¿» semester and school year fallback to configuration Γ¿» normalize and variants FAIL Tests\Unit\Services\Scores\SemesterScoreServiceTest Γ¿» update student scores upserts semester scores