Files
root 39228168c8
API CI/CD / Validate (composer + pint) (push) Successful in 3m14s
API CI/CD / Test (PHPUnit) (push) Failing after 3m28s
API CI/CD / Build frontend assets (push) Successful in 1m2s
API CI/CD / Security audit (push) Failing after 56s
API CI/CD / Deploy to shared hosting (PHP) (push) Has been skipped
add school year and security fix
2026-07-06 00:55:01 -04:00

1862 lines
92 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL Tests\Unit\ApiDocsServiceTest
public bootstrap matches ci public flags 0.01s
full bootstrap enables try and welcome 0.01s
FAIL Tests\Unit\ApiLoginSecurityServiceTest
✓ roles object map preserves role names 0.02s
build login response includes teacher class context 0.01s
build login response includes teacher assistant class context
PASS Tests\Unit\AuthSessionServiceTest
✓ sanitize redirect relative 0.01s
✓ sanitize redirect empty
✓ sanitize rejects protocol relative
PASS Tests\Unit\Http\Controllers\Api\AttendanceCommentTemplateControllerTest
✓ index returns success json 0.09s
✓ index passes active only true 0.01s
✓ show returns template 0.01s
✓ store returns created response 0.01s
✓ update returns success response 0.01s
✓ destroy returns success response 0.02s
✓ list data returns templates key 0.01s
PASS Tests\Unit\Grading\ScoreValueValidatorTest
✓ blank score remains null 0.04s
✓ score must be inside range
✓ status inference preserves legacy pending behavior
PASS Tests\Unit\Listeners\DeleteUnverifiedUserListenerTest
✓ listener invokes service 0.02s
PASS Tests\Unit\Models\AdditionalChargeTest
✓ scope by parent term filters status and orders desc 0.04s
✓ mark applied updates status and invoice 0.01s
✓ list all for term falls back to year 0.01s
✓ list all for term filters by search query 0.01s
PASS Tests\Unit\Models\AdminNotificationSubjectModelTest
✓ admin relationship returns user 0.04s
✓ timestamps are set on create 0.01s
PASS Tests\Unit\Models\AttendanceCommentTemplateModelTest
✓ get active templates filters and orders 0.03s
PASS Tests\Unit\Models\AttendanceDataTest
✓ get attendance by class and get attendance 0.02s
✓ unreported term rows filters unreported 0.01s
✓ get unreported absences and lates groups rows 0.01s
✓ mark reported and notified updates flags 0.01s
PASS Tests\Unit\Models\AttendanceDayTest
✓ get or create draft creates once and reuses 0.28s
✓ find by section date returns model or null 0.01s
✓ submit sets submitted fields 0.01s
✓ finalize is alias to submit 0.01s
✓ publish sets published fields 0.01s
✓ reopen sets reopen fields and status 0.01s
✓ reopen rejects invalid status 0.01s
✓ is finalized true for published or legacy finalized 0.01s
FAIL Tests\Unit\Models\AttendanceEmailTemplateTest
get template returns exact active variant when available 0.02s
get template falls back to default when requested variant missing 0.02s
get template ignores inactive exact variant and uses active default 0.01s
get template returns null when no active template exists 0.01s
PASS Tests\Unit\Models\AttendanceRecordTest
✓ model metadata is converted
✓ 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 0.02s
get template falls back to default variant 0.01s
get template ignores inactive templates and can return null 0.01s
get template prefers exact variant over default 0.01s
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
✓ 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
FAIL 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
✓ 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
✓ password mutator preserves pbkdf2 hashes 0.62s
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.01s
✓ rules fail when required fields missing 0.01s
✓ rules fail when max score less than min score 0.01s
✓ rules fail when score out of range 0.01s
PASS Tests\Unit\Http\Requests\AttendanceCommentTemplate\UpdateAttendanceCommentTemplateRequestTest
✓ rules pass with partial valid data 0.01s
✓ rules pass when both scores valid 0.01s
✓ rules fail when both scores invalid relation 0.01s
✓ rules fail on invalid boolean 0.01s
PASS Tests\Unit\Resources\ClassProgress\ClassProgressReportResourceTest
✓ resource has expected keys 0.02s
PASS Tests\Unit\Resources\Frontend\FrontendPageResourceTest
✓ resource returns page 0.01s
PASS Tests\Unit\Resources\Frontend\PageContentResourceTest
✓ resource returns content 0.01s
FAIL Tests\Unit\Resources\Messaging\MessageResourceTest
resource returns expected shape 0.02s
PASS Tests\Unit\Resources\Messaging\RecipientResourceTest
✓ resource returns expected shape 0.02s
PASS Tests\Unit\Resources\Notifications\NotificationResourceTest
✓ resource returns expected shape 0.02s
PASS Tests\Unit\Resources\Notifications\UserNotificationResourceTest
✓ resource returns expected shape 0.01s
PASS Tests\Unit\Resources\Roles\PermissionResourceTest
✓ resource shape 0.02s
PASS Tests\Unit\Resources\Roles\RolePermissionResourceTest
✓ resource shape 0.01s
PASS Tests\Unit\Resources\Roles\RoleResourceTest
✓ resource shape 0.01s
PASS Tests\Unit\Resources\Roles\UserWithRolesResourceTest
✓ resource shape 0.02s
PASS Tests\Unit\Resources\Settings\SchoolCalendarEventResourceTest
✓ resource returns expected shape 0.01s
PASS Tests\Unit\Resources\Settings\SettingsResourceTest
✓ resource returns expected shape 0.01s
FAIL Tests\Unit\Resources\Staff\StaffResourceTest
resource returns expected shape 0.01s
PASS Tests\Unit\Resources\Support\ContactMessageResourceTest
✓ resource returns expected shape 0.01s
FAIL Tests\Unit\Resources\Support\SupportRequestResourceTest
resource returns expected shape 0.01s
PASS Tests\Unit\Resources\Ui\UiStyleResourceTest
✓ resource returns expected shape 0.02s
PASS Tests\Unit\Services\Administrator\AdminNotificationSubjectServiceTest
✓ alerts data includes admins 0.02s
PASS Tests\Unit\Services\Administrator\AdminNotificationUserServiceTest
✓ fetch admin notification users excludes parents 0.02s
PASS Tests\Unit\Services\Administrator\AdminPrintRecipientServiceTest
✓ data returns admins and assigned 0.02s
FAIL Tests\Unit\Services\Administrator\AdministratorAbsenceServiceTest
submit requires reason 0.02s
PASS Tests\Unit\Services\Administrator\AdministratorDashboardServiceTest
✓ delegates to metrics and search 0.02s
FAIL Tests\Unit\Services\Administrator\AdministratorEnrollmentEventServiceTest
dispatch grouped events with empty groups 0.02s
PASS Tests\Unit\Services\Administrator\AdministratorEnrollmentQueryServiceTest
✓ enrollment withdrawal data returns structure 0.01s
PASS Tests\Unit\Services\Administrator\AdministratorEnrollmentRefundServiceTest
✓ process refunds reports missing invoice 0.02s
PASS Tests\Unit\Services\Administrator\AdministratorEnrollmentServiceTest
✓ delegates to query and status services 0.02s
PASS Tests\Unit\Services\Administrator\AdministratorEnrollmentStatusServiceTest
✓ update statuses requires payload 0.01s
PASS Tests\Unit\Services\Administrator\AdministratorMetricsServiceTest
✓ metrics returns counts 0.01s
PASS Tests\Unit\Services\Administrator\AdministratorNotificationServiceTest
✓ delegates to subject and print services 0.02s
PASS Tests\Unit\Services\Administrator\AdministratorSharedServiceTest
✓ get previous school year 0.01s
PASS Tests\Unit\Services\Administrator\AdministratorTeacherSubmissionServiceTest
✓ delegates to report and notification 0.01s
PASS Tests\Unit\Services\Administrator\AdministratorUserSearchServiceTest
✓ empty query returns no results 0.01s
FAIL Tests\Unit\Services\Administrator\TeacherSubmissionNotificationServiceTest
send requires targets 0.01s
FAIL Tests\Unit\Services\Administrator\TeacherSubmissionReportServiceTest
report returns summary 0.01s
PASS Tests\Unit\Services\Administrator\TeacherSubmissionSupportServiceTest
✓ submission status labels 0.02s
✓ build missing items 0.01s
PASS Tests\Unit\Services\Assignment\AssignmentContextServiceTest
✓ get current term values 0.01s
PASS Tests\Unit\Services\Assignment\AssignmentDataLoaderServiceTest
✓ load teacher classes includes teacher name 0.02s
✓ load student classes filters inactive 0.01s
PASS Tests\Unit\Services\Assignment\AssignmentMetaServiceTest
✓ get school years uses fallback 0.01s
✓ get school years returns distinct sorted 0.01s
✓ first non empty returns first value 0.01s
FAIL Tests\Unit\Services\Assignment\AssignmentSectionServiceTest
get section names map 0.01s
FAIL Tests\Unit\Services\AssignmentServiceTest
✓ get current semester returns config value 0.02s
✓ get current school year returns config value 0.02s
get assignments overview returns grouped sections 0.02s
✓ get assignments overview uses fallback config values when metadata… 0.01s
✓ get assignments overview excludes inactive students 0.02s
get assignments overview sorts sections by name 0.01s
✓ get assignments overview collects school years descending 0.01s
✓ store assignment creates new row 0.02s
✓ store assignment updates existing row 0.03s
get class assignment data returns all sections 0.02s
✓ get class assignment data deduplicates teacher names 0.01s
PASS Tests\Feature\Api\Attendance\AdminAttendanceApiControllerTest
✓ daily data returns success 0.05s
PASS Tests\Unit\Services\Attendance\AttendanceAutoPublishJobServiceTest
✓ run publishes due records 0.01s
PASS Tests\Unit\Services\Attendance\AttendanceAutoPublishServiceTest
✓ second sunday after end of day 0.01s
✓ second sunday backward date 0.01s
PASS Tests\Unit\Services\Attendance\AttendanceCommentServiceTest
✓ comment from score uses template and name 0.01s
✓ comment from score falls back to this student 0.02s
PASS Tests\Unit\Services\Attendance\AttendanceConsequenceServiceTest
✓ send follow up requires parent email 0.03s
✓ send follow up marks tracking and notifies 0.01s
FAIL Tests\Unit\Services\Attendance\AttendanceDailySummaryServiceTest
send absentees summary notifies parent 0.02s
PASS Tests\Unit\Services\Attendance\AttendancePolicyServiceTest
✓ teacher can edit draft 0.01s
✓ teacher cannot edit finalized 0.01s
✓ admin like by permission 0.01s
✓ can manage early dismissals for teacher 0.01s
PASS Tests\Unit\Services\Attendance\AttendanceQueryServiceTest
✓ teacher grid returns section labels and grid 0.02s
PASS Tests\Unit\Services\Attendance\AttendanceRecordSyncServiceTest
✓ update attendance record adjusts totals 0.02s
✓ add new attendance record creates row 0.01s
FAIL Tests\Unit\Services\Attendance\AttendanceSemesterRangeServiceTest
get semester range 0.01s
✓ build sunday list returns sundays 0.01s
PASS Tests\Unit\Services\Attendance\AttendanceServiceTest
✓ update attendance management throws when locked 0.02s
✓ update attendance management saves row 0.02s
PASS Tests\Unit\Services\Attendance\AttendanceSummaryRebuildServiceTest
✓ rebuild inserts summary rows 0.02s
FAIL Tests\Unit\Services\Attendance\LateSlipLogCommandServiceTest
delete removes log 0.01s
FAIL Tests\Unit\Services\Attendance\LateSlipLogQueryServiceTest
paginate filters by date 0.01s
FAIL Tests\Unit\Services\Attendance\SemesterRangeServiceTest
✓ normalize semester
get school year range
✓ build sunday list
PASS Tests\Feature\Api\Attendance\StaffAttendanceApiControllerTest
✓ month data returns success 0.02s
✓ admins data returns success 0.02s
PASS Tests\Unit\Services\Attendance\StaffAttendanceServiceTest
✓ month data returns sections and days 0.02s
PASS Tests\Unit\Services\Attendance\StudentAttendanceWriterServiceTest
✓ resolve student school id from student 0.02s
✓ save or update updates existing and syncs record 0.01s
PASS Tests\Feature\Api\Attendance\TeacherAttendanceApiControllerTest
✓ teacher grid endpoint returns success 0.02s
✓ teacher form endpoint returns success or validation message 0.02s
PASS Tests\Unit\Services\Attendance\TeacherAttendanceSubmissionServiceTest
✓ submit requires attendance data 0.02s
PASS Tests\Unit\Services\AttendanceManagement\AttendanceManagementServiceTest
✓ badge scan persists school year and semester for the event date 0.02s
✓ dashboard derives academic context for legacy rows and applies filt… 0.02s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceCaseQueryServiceTest
✓ returns not found when student missing 0.02s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceCommunicationSupportServiceTest
✓ compose requires student id 0.01s
✓ get violation dates for student 0.02s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceEmailComposerServiceTest
✓ render template replaces tokens 0.01s
✓ pick variant fallback 0.01s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceNotificationLogServiceTest
✓ log notification creates and updates 0.02s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceNotificationWorkflowServiceTest
✓ record requires parent email 0.02s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceParentLookupServiceTest
✓ get primary parent for student 0.01s
✓ get secondary parent falls back to parent row 0.01s
PASS Tests\Unit\Services\AttendanceTracking\AttendancePendingViolationServiceTest
✓ returns error when no students 0.01s
FAIL Tests\Unit\Services\AttendanceTracking\AttendanceTrackingServiceTest
service instantiates 0.01s
PASS Tests\Unit\Services\AttendanceTracking\AttendanceViolationStudentResolverServiceTest
✓ resolve for school year returns students 0.02s
PASS Tests\Unit\Services\AttendanceTracking\ViolationRuleEngineServiceTest
✓ school year helpers 0.01s
✓ window weeks for violation code 0.01s
PASS Tests\Unit\Services\Auth\PasswordResetCleanupServiceTest
✓ cleanup removes old requests 0.02s
PASS Tests\Unit\Services\Auth\PermissionCheckServiceTest
✓ has permission returns true when assigned 0.01s
PASS Tests\Unit\Services\Auth\RegistrationCaptchaServiceTest
✓ generate sets cache value 0.01s
✓ verify and clear 0.02s
PASS Tests\Unit\Services\Auth\RegistrationFormatterServiceTest
✓ format normalizes parent fields 0.01s
✓ format includes second parent when present 0.01s
FAIL Tests\Unit\Services\Auth\RegistrationServiceTest
register creates parent user 0.02s
register rejects pending activation 0.32s
PASS Tests\Unit\Services\Auth\UserRoleServiceTest
✓ has permission for crud checks roles 0.01s
PASS Tests\Unit\Services\Badges\BadgeFormDataServiceTest
✓ build formats users and assigns latest class for teacherish roles 0.02s
✓ build defaults invalid active role to teacher 0.01s
PASS Tests\Unit\Services\Badges\BadgePdfServiceTest
✓ generate returns pdf response and logs prints 0.10s
✓ generate returns empty state pdf when no valid users found 0.09s
✓ generate deduplicates same badge content 0.08s
PASS Tests\Unit\Services\Badges\BadgePrintLogServiceTest
✓ get status normalizes ids before calling model 0.02s
✓ log normalizes ids and returns inserted count 0.01s
✓ log safely swallows exceptions and logs error 0.01s
PASS Tests\Unit\Services\Badges\BadgeTextFormatterTest
✓ normalize ids filters and deduplicates 0.02s
✓ norm removes extra spaces and control chars 0.01s
✓ format role handles special words and acronyms 0.01s
✓ format roles csv formats each role 0.01s
✓ format class normalizes known values 0.01s
✓ resolve role prefers first available candidate 0.01s
✓ to pdf returns string 0.01s
✓ fit text returns size within bounds 0.01s
FAIL Tests\Unit\Services\Billing\BalanceCalculationServiceTest
calculate family account applies balance formula 0.02s
✓ overpayment records account credit 0.01s
✓ student rows include event charges 0.01s
FAIL Tests\Unit\Services\Billing\BillingTotalsServiceTest
event and additional subtotals 0.02s
additional subtotal by parent sums applied charges 0.01s
✓ event subtotals by student groups amounts 0.01s
FAIL Tests\Unit\Services\Billing\ChargeServiceTest
✓ create extra charge blocks duplicate 0.02s
✓ create event charge blocks duplicate 0.01s
✓ create event charge succeeds 0.01s
cancel event charge zeros charge and creates credit 0.01s
✓ apply extra charge marks applied 0.02s
✓ list for parent returns both charge types 0.01s
PASS Tests\Unit\Services\BroadcastEmail\BroadcastEmailComposerServiceTest
✓ sanitize removes script and events 0.01s
✓ compose replaces name when personalized 0.02s
PASS Tests\Unit\Services\BroadcastEmail\BroadcastEmailRecipientServiceTest
✓ parents with emails filters missing email 0.02s
✓ recipients by ids returns names 0.02s
PASS Tests\Unit\Services\BroadcastEmail\BroadcastEmailSenderOptionsServiceTest
✓ list options from env 0.02s
PASS Tests\Unit\Services\CertificateAdminServiceTest
✓ dashboard groups students and uses saved decisions as source of tru… 0.02s
✓ issue certificates reuses existing record and creates new one for u… 0.02s
✓ audit log returns year summary and filtered records 0.02s
PASS Tests\Unit\Services\ClassPrep\ClassRosterServiceTest
✓ list students by class 0.01s
PASS Tests\Unit\Services\ClassPrep\StickerCountServiceTest
✓ list all returns totals excluding youth 0.01s
✓ list for class limits results 0.02s
PASS Tests\Unit\Services\ClassPreparation\ClassPreparationAdjustmentServiceTest
✓ apply adjustments updates counts 0.01s
FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationAdjustmentWriterServiceTest
save adjustments persists allowed items 0.02s
PASS Tests\Unit\Services\ClassPreparation\ClassPreparationCalculatorServiceTest
✓ get class level by section 0.02s
✓ calculate prep items for lower grades 0.01s
PASS Tests\Unit\Services\ClassPreparation\ClassPreparationContextServiceTest
✓ has roster for semester 0.01s
PASS Tests\Unit\Services\ClassPreparation\ClassPreparationInventoryServiceTest
✓ build availability uses max value 0.02s
FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationLogServiceTest
✓ has prep changed detects diff 0.01s
create log and get latest 0.01s
FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationPrintServiceTest
print prep creates log 0.02s
✓ print prep handles log failure 0.02s
PASS Tests\Unit\Services\ClassPreparation\ClassPreparationRosterServiceTest
✓ get class section student counts 0.01s
✓ get student count for section 0.02s
FAIL Tests\Unit\Services\ClassPreparation\ClassPreparationServiceTest
✓ list prep returns sections and totals 0.02s
mark printed creates logs 0.01s
PASS Tests\Unit\Services\ClassProgress\ClassProgressAttachmentServiceTest
✓ store attachments persists records 0.04s
PASS Tests\Unit\Services\ClassProgress\ClassProgressMetaServiceTest
✓ subject sections return configured values 0.01s
FAIL Tests\Unit\Services\ClassProgress\ClassProgressMutationServiceTest
create reports persists multiple subjects 0.02s
update report changes status 0.02s
delete report removes record 0.01s
PASS Tests\Unit\Services\ClassProgress\ClassProgressQueryServiceTest
✓ list reports filters by class section 0.02s
PASS Tests\Unit\Services\ClassProgress\ClassProgressRuleServiceTest
✓ build unit chapter summary limits length
✓ ensure week end defaults to six days
PASS Tests\Unit\Services\ClassSections\ClassAttendanceServiceTest
✓ get attendance payload includes students 0.02s
PASS Tests\Unit\Services\ClassSections\ClassSectionCommandServiceTest
✓ create update delete 0.01s
PASS Tests\Unit\Services\ClassSections\ClassSectionQueryServiceTest
✓ list filters by search 0.01s
PASS Tests\Unit\Services\ClassSections\ClassSectionSeedServiceTest
✓ seed defaults creates rows 0.02s
PASS Tests\Unit\Services\Communication\CommunicationTemplateServiceTest
✓ list active templates maps columns 0.01s
PASS Tests\Unit\Services\CompetitionScores\CompetitionScoresSaveServiceTest
✓ filter scores rejects non integers 0.01s
✓ save scores upserts 0.02s
PASS Tests\Unit\Services\Dashboard\DashboardRouteServiceTest
✓ resolve returns fallback when no roles 0.01s
✓ resolve returns dashboard route for role 0.02s
FAIL Tests\Unit\Services\Discounts\DiscountApplyServiceTest
apply voucher returns error when no remaining uses 0.02s
PASS Tests\Unit\Services\Email\EmailExtractorServiceTest
✓ list and compare emails 0.01s
PASS Tests\Unit\Services\Email\EmailProfileServiceTest
✓ resolve profile maps aliases 0.01s
✓ env key from profile 0.01s
✓ sanitize reply to name 0.01s
PASS Tests\Unit\Services\EmergencyContacts\EmergencyContactDirectoryServiceTest
✓ groups include parent students contacts and phones 0.02s
PASS Tests\Unit\Services\Events\EventCategoryServiceTest
✓ categories returns list 0.02s
PASS Tests\Unit\Services\Events\EventChargeQueryServiceTest
✓ list returns paginated charges 0.01s
PASS Tests\Unit\Services\Events\EventChargeServiceTest
✓ seed charges creates event charges 0.01s
PASS Tests\Unit\Services\Events\EventListServiceTest
✓ list filters active events 0.02s
PASS Tests\Unit\Services\Events\EventManagementServiceTest
✓ update returns not found 0.01s
FAIL Tests\Unit\Services\Events\EventStudentChargeServiceTest
list students with charges 0.01s
PASS Tests\Unit\Services\Exams\ExamDraftTeacherServiceTest
✓ store creates draft 0.02s
FAIL Tests\Unit\Services\Expenses\ExpenseReceiptServiceTest
store receipt returns filename and url 0.01s
PASS Tests\Unit\Services\Expenses\ExpenseStaffServiceTest
✓ list staff users excludes parents 0.02s
PASS Tests\Unit\Services\ExtraCharges\ExtraChargesMetaServiceTest
✓ get school years uses fallback 0.01s
✓ get school years merges sources 0.01s
PASS Tests\Unit\Services\Families\FamilyFinanceServiceTest
✓ load financials for parents returns summary 0.01s
PASS Tests\Unit\Services\Families\FamilyMutationServiceTest
✓ bootstrap creates family 0.02s
✓ attach second by email creates guardian 0.02s
✓ set primary home updates flag 0.02s
PASS Tests\Unit\Services\Families\FamilyNotificationServiceTest
✓ send compose email delegates to dispatcher 0.02s
PASS Tests\Unit\Services\Families\FamilyQueryServiceTest
✓ admin index returns families 0.02s
✓ search suggestions returns items 0.01s
✓ family card returns payload 0.02s
PASS Tests\Unit\Services\FeeCalculationServiceTest
✓ calculate refund returns calculator amount 0.01s
PASS Tests\Unit\Services\Fees\FeeGradeServiceTest
✓ grade level parsing 0.01s
✓ compare grades orders numeric then suffix 0.02s
PASS Tests\Unit\Services\Fees\FeeRefundCalculatorServiceTest
✓ calculate refund caps at total paid 0.01s
✓ returns zero when parent has no payments 0.01s
✓ returns zero when no withdrawn students 0.02s
✓ withdrawn student breakdown carries assigned tuition fee 0.01s
✓ multi student family only refunds withdrawn students 0.01s
✓ withdrawal after deadline is not eligible 0.01s
✓ missing withdrawal date is skipped with reason 0.01s
FAIL Tests\Unit\Services\Fees\FeeRefundDetailServiceTest
calculate refund details returns amount 0.01s
PASS Tests\Unit\Services\Fees\FeeStudentFeeServiceTest
✓ total tuition fee applies tiers and youth fee 0.01s
✓ assign fees stores tuition fee and fee category on each student 0.02s
✓ calculate breakdown includes billable and non billable students 0.01s
✓ is billable and is withdrawn classifiers 0.01s
PASS Tests\Unit\Services\Fees\TuitionCalculationServiceTest
✓ calculate returns family total and per student breakdown 0.02s
✓ calculate excludes non billable students from family total 0.01s
✓ calculate applies per student discount 0.01s
✓ family total helper 0.01s
PASS Tests\Unit\Services\Files\ExamDraftDownloadNameServiceTest
✓ build returns slugified name 0.02s
PASS Tests\Unit\Services\Files\FileServeServiceTest
✓ meta returns file metadata 0.01s
✓ serve inline returns 304 when etag matches 0.01s
✓ serve inline rejects invalid extension 0.02s
PASS Tests\Unit\Services\Finance\FinancialChartServiceTest
✓ generate charts returns null in tests 0.01s
PASS Tests\Unit\Services\Finance\FinancialPaymentServiceTest
✓ payment aggregates exclude void statuses 0.01s
PASS Tests\Unit\Services\Finance\FinancialPdfReportServiceTest
✓ build pdf returns bytes 0.02s
PASS Tests\Unit\Services\Finance\FinancialReportServiceTest
✓ report returns grouped data 0.02s
PASS Tests\Unit\Services\Finance\FinancialSchoolYearServiceTest
✓ list years returns distinct sorted years 0.01s
PASS Tests\Unit\Services\Finance\FinancialSummaryServiceTest
✓ summary calculates totals 0.02s
PASS Tests\Unit\Services\Finance\FinancialUnpaidParentsServiceTest
✓ unpaid parents returns installment data 0.02s
PASS Tests\Unit\Services\Frontend\ContactSubmissionServiceTest
✓ submit creates contact record 0.02s
PASS Tests\Unit\Services\Frontend\FrontendPageServiceTest
✓ page returns payload 0.02s
PASS Tests\Unit\Services\Frontend\LandingPageContextServiceTest
✓ context returns config values 0.01s
PASS Tests\Unit\Services\Frontend\LandingPageParentDashboardServiceTest
✓ summary returns parent payload 0.01s
PASS Tests\Unit\Services\Frontend\LandingPageRoleServiceTest
✓ resolve role returns guest when missing 0.02s
✓ resolve role returns first role 0.01s
PASS Tests\Unit\Services\Frontend\LandingPageServiceTest
✓ dashboard for user returns guest 0.01s
✓ dashboard for user returns admin 0.02s
PASS Tests\Unit\Services\Frontend\LandingPageTeacherSummaryServiceTest
✓ summary returns dashboard payload 0.02s
PASS Tests\Unit\Services\Frontend\ProfileIconServiceTest
✓ build for user returns initials 0.02s
PASS Tests\Unit\Services\Frontend\StaticPageServiceTest
✓ load returns content 0.02s
✓ load missing returns error 0.01s
PASS Tests\Unit\Services\Grading\BelowSixtyEmailServiceTest
✓ send requires student id 0.01s
✓ send delivers to guardians 0.02s
PASS Tests\Unit\Services\Grading\GradingBelowSixtyServiceTest
✓ list rows returns students below sixty 0.01s
PASS Tests\Unit\Services\Grading\GradingLockServiceTest
✓ toggle creates lock 0.01s
✓ lock all locks sections 0.02s
PASS Tests\Unit\Services\Grading\HomeworkTrackingServiceTest
✓ report returns teacher rows 0.02s
PASS Tests\Unit\Services\Incidents\IncidentAnalysisServiceTest
✓ analyze groups incidents by student 0.01s
PASS Tests\Unit\Services\Incidents\IncidentHistoryServiceTest
✓ processed enriches grade and updater names 0.02s
PASS Tests\Unit\Services\Incidents\IncidentLookupServiceTest
✓ grade options with active students 0.01s
✓ updater name map 0.01s
PASS Tests\Unit\Services\Inventory\InventoryCategoryServiceTest
✓ create category 0.02s
✓ update category 0.01s
PASS Tests\Unit\Services\Inventory\InventoryItemServiceTest
✓ create creates item and movement 0.02s
✓ update updates item 0.02s
PASS Tests\Unit\Services\Inventory\InventoryMovementServiceTest
✓ create movement 0.01s
PASS Tests\Unit\Services\Inventory\InventorySummaryServiceTest
✓ summary returns items 0.01s
PASS Tests\Unit\Services\Inventory\InventoryTeacherDistributionServiceTest
✓ form data requires teacher role 0.02s
✓ distribute success 0.02s
PASS Tests\Unit\Services\Inventory\SupplierServiceTest
✓ create supplier 0.01s
✓ update supplier 0.02s
PASS Tests\Unit\Services\Inventory\SupplyCategoryServiceTest
✓ create category 0.01s
✓ update category 0.01s
PASS Tests\Unit\Services\Invoices\InvoiceConfigServiceTest
✓ config service reads values 0.02s
PASS Tests\Unit\Services\Invoices\InvoiceGenerationServiceTest
✓ generate invoice creates new invoice 0.02s
PASS Tests\Unit\Services\Invoices\InvoiceGradeServiceTest
✓ grade parsing handles common cases 0.01s
✓ compare grades orders numeric then suffix 0.02s
PASS Tests\Unit\Services\Invoices\InvoiceManagementServiceTest
✓ management data returns parent invoice summary 0.02s
PASS Tests\Unit\Services\Invoices\InvoicePaymentServiceTest
✓ parent invoice summary includes refunds and last payment 0.01s
PASS Tests\Unit\Services\Invoices\InvoicePdfServiceTest
✓ build pdf returns bytes 0.02s
PASS Tests\Unit\Services\Invoices\InvoiceServiceTest
✓ has class assignment returns true 0.02s
PASS Tests\Unit\Services\Invoices\InvoiceTuitionServiceTest
✓ calculate tuition fee counts regular and youth 0.01s
✓ refund deadline includes withdrawn when passed 0.02s
PASS Tests\Unit\Services\Messaging\MessageCommandServiceTest
✓ create sends message 0.02s
✓ create rejects invalid role 0.01s
PASS Tests\Unit\Services\Messaging\MessageQueryServiceTest
✓ inbox filters messages 0.02s
PASS Tests\Unit\Services\Messaging\MessageRecipientServiceTest
✓ teachers returns list 0.01s
✓ parents returns list 0.02s
FAIL Tests\Unit\Services\Navigation\NavBuilderServiceTest
✓ save creates nav item and roles 0.02s
reorder updates sort order 0.01s
PASS Tests\Unit\Services\Navigation\NavbarServiceTest
✓ get menu for roles builds tree 0.01s
PASS Tests\Unit\Services\Notifications\NotificationActiveServiceTest
✓ list filters by target group 0.02s
PASS Tests\Unit\Services\Notifications\NotificationCleanupServiceTest
✓ cleanup expired soft deletes rows 0.01s
PASS Tests\Unit\Services\Notifications\NotificationDeletedServiceTest
✓ list returns deleted notifications 0.01s
PASS Tests\Unit\Services\Notifications\NotificationDispatchServiceTest
✓ dispatch logs email and sms 0.02s
PASS Tests\Unit\Services\Notifications\NotificationManagementServiceTest
✓ update modifies notification 0.01s
✓ update returns false when missing 0.01s
✓ delete and restore notification 0.02s
PASS Tests\Unit\Services\Notifications\NotificationReadServiceTest
✓ mark read updates row 0.01s
✓ mark read returns false when missing 0.01s
PASS Tests\Unit\Services\Notifications\NotificationRecipientServiceTest
✓ get recipients by role 0.02s
FAIL Tests\Unit\Services\Notifications\NotificationSendServiceTest
send creates notification and user notifications 0.02s
PASS Tests\Unit\Services\Notifications\NotificationShowServiceTest
✓ get for user returns notification 0.01s
✓ get for user returns null when missing 0.02s
PASS Tests\Unit\Services\Notifications\NotificationTriggerServiceTest
✓ trigger dispatches event 0.01s
✓ to user dispatches event 0.01s
PASS Tests\Unit\Services\Notifications\NotificationUserListServiceTest
✓ list filters by read status 0.02s
PASS Tests\Unit\Services\Notifications\UserNotificationDispatchServiceTest
✓ notify user creates notification 0.02s
✓ notify user rejects invalid user 0.01s
PASS Tests\Unit\Services\Parents\ParentAttendanceReportServiceTest
✓ form data returns students 0.02s
PASS Tests\Unit\Services\Parents\ParentAttendanceServiceTest
✓ list attendance returns rows 0.02s
PASS Tests\Unit\Services\Parents\ParentConfigServiceTest
✓ context returns config values 0.01s
PASS Tests\Unit\Services\Parents\ParentEmergencyContactServiceTest
✓ store creates contact 0.02s
PASS Tests\Unit\Services\Parents\ParentEnrollmentServiceTest
✓ overview returns students 0.02s
PASS Tests\Unit\Services\Parents\ParentInvoiceServiceTest
✓ list invoices filters by parent 0.02s
PASS Tests\Unit\Services\Parents\ParentRegistrationServiceTest
✓ register creates student and contact 0.02s
PASS Tests\Unit\Services\Payments\PaymentBalanceServiceTest
✓ update balance adjusts payment totals 0.01s
PASS Tests\Unit\Services\Payments\PaymentEnrollmentEventServiceTest
✓ build event data requires parent 0.02s
✓ build event data returns parent payload when no students 0.02s
PASS Tests\Unit\Services\Payments\PaymentEventChargesServiceTest
✓ get enrolled students returns grade 0.01s
PASS Tests\Unit\Services\Payments\PaymentLookupServiceTest
✓ get by parent filters school year 0.01s
PASS Tests\Unit\Services\Payments\PaymentManualServiceTest
✓ record payment rejects invalid method 0.02s
✓ suggest returns matches 0.01s
PASS Tests\Unit\Services\Payments\PaymentMissedCheckServiceTest
✓ find users with missed payments 0.01s
✓ send reminders sends email and notification 0.01s
PASS Tests\Unit\Services\Payments\PaymentNotificationDispatchServiceTest
✓ notify user creates notification records 0.01s
PASS Tests\Unit\Services\Payments\PaymentNotificationServiceTest
✓ send records log and returns sent count 0.02s
✓ list logs filters by type 0.02s
PASS Tests\Unit\Services\Payments\PaymentPlanServiceTest
✓ create plan uses defaults when missing 0.02s
PASS Tests\Unit\Services\Payments\PaymentTestNotificationServiceTest
✓ send logs and sends email 0.02s
PASS Tests\Unit\Services\Payments\PaymentTransactionServiceTest
✓ create and update transaction 0.02s
PASS Tests\Unit\Services\Payments\PaypalPaymentServiceTest
✓ create payment falls back to hosted when sdk missing 0.01s
✓ execute payment throws when sdk missing 0.01s
PASS Tests\Unit\Services\Payments\PaypalPaymentSyncServiceTest
✓ sync applies payment and marks synced 0.02s
PASS Tests\Unit\Services\Payments\PaypalTransactionsServiceTest
✓ list all filters by keyword 0.01s
PASS Tests\Unit\Services\Phone\PhoneFormatterServiceTest
✓ format returns null for invalid 0.01s
✓ format formats digits 0.01s
PASS Tests\Unit\Services\Policy\PolicyContentServiceTest
✓ get policy returns content 0.01s
PASS Tests\Unit\Services\Preferences\PreferencesCommandServiceTest
✓ upsert creates record 0.01s
PASS Tests\Unit\Services\Preferences\PreferencesOptionsServiceTest
✓ defaults include expected keys 0.02s
PASS Tests\Unit\Services\Preferences\PreferencesQueryServiceTest
✓ get for user returns defaults when missing 0.01s
✓ paginate filters by user id 0.01s
PASS Tests\Unit\Services\Promotions\LevelProgressionServiceTest
✓ seed defaults creates baseline levels 0.02s
✓ resolve by class id uses mapping when present 0.02s
✓ resolve falls back to class id plus one when no mapping 0.01s
✓ upsert mapping updates existing row 0.01s
FAIL Tests\Unit\Services\Promotions\PromotionEligibilityServiceTest
✓ passing student becomes awaiting parent enrollment 0.02s
✓ failing student becomes repeated 0.01s
✓ missing scores marks on hold 0.01s
terminal level is graduated 0.02s
✓ audit log records status changes 0.01s
PASS Tests\Unit\Services\Promotions\PromotionEnrollmentServiceTest
✓ completing checklist finalises promotion and creates enrollment 0.02s
✓ partial checklist keeps status in progress 0.02s
✓ submit requires complete checklist 0.01s
✓ other parent cannot act on record 0.01s
✓ expired records become not enrolled 0.02s
PASS Tests\Unit\Services\Promotions\PromotionStatusServiceTest
✓ allowed transition updates status and audit log 0.02s
✓ disallowed transition throws 0.01s
✓ force status bypasses transition map 0.02s
✓ no op transition returns record unchanged 0.02s
PASS Tests\Unit\Services\PurchaseOrders\PurchaseOrderCreateServiceTest
✓ create persists purchase order and items 0.01s
FAIL Tests\Unit\Services\PurchaseOrders\PurchaseOrderReceiveServiceTest
receive updates items and inventory 0.01s
PASS Tests\Unit\Services\PurchaseOrders\PurchaseOrderStatusServiceTest
✓ cancel marks purchase order canceled 0.02s
PASS Tests\Unit\Services\Refunds\RefundDecisionServiceTest
✓ approve updates refund status 0.01s
PASS Tests\Unit\Services\Refunds\RefundInvoiceAdjustmentServiceTest
✓ apply book charge inserts additional charge 0.01s
PASS Tests\Unit\Services\Refunds\RefundNotificationServiceTest
✓ notify pending logs event 0.02s
FAIL Tests\Unit\Services\Refunds\RefundOverpaymentServiceTest
recalculate creates overpayment refund 0.01s
PASS Tests\Unit\Services\Refunds\RefundPayoutServiceTest
✓ record payment marks partial 0.01s
FAIL Tests\Unit\Services\Refunds\RefundPolicyServiceTest
process withdrawal refund creates refund 0.02s
PASS Tests\Unit\Services\Refunds\RefundQueryServiceTest
✓ list filters by status 0.01s
FAIL Tests\Unit\Services\Refunds\RefundRequestServiceTest
request overpayment creates refund 0.01s
FAIL Tests\Unit\Services\Refunds\RefundSummaryServiceTest
summary calculates unapplied balance 0.02s
PASS Tests\Unit\Services\Reimbursements\ReimbursementBatchAssignmentServiceTest
✓ assign and unassign batch item 0.02s
PASS Tests\Unit\Services\Reimbursements\ReimbursementBatchServiceTest
✓ create batch assigns sequence and title 0.01s
PASS Tests\Unit\Services\Reimbursements\ReimbursementDonationServiceTest
✓ mark donation updates expense and unassigns 0.02s
PASS Tests\Unit\Services\Reimbursements\ReimbursementRecipientServiceTest
✓ recipient options include staff and specials 0.02s
PASS Tests\Unit\Services\Reports\ReportCards\ReportCardServiceTest
✓ meta returns data sets 0.01s
✓ completeness returns summary 0.02s
✓ acknowledgement returns signed data 0.01s
✓ generate single report returns pdf 0.02s
✓ generate single report handles missing scores 0.01s
PASS Tests\Unit\Services\Reports\SlipPrinterFormatterServiceTest
✓ to db date parses us format 0.02s
✓ to db time parses string 0.01s
PASS Tests\Unit\Services\Reports\Stickers\StickerPresetServiceTest
✓ presets include alias fields 0.01s
PASS Tests\Unit\Services\Reports\Stickers\StickerPrintServiceTest
✓ generate returns pdf content 0.02s
✓ generate returns error when no students 0.01s
PASS Tests\Unit\Services\Reports\Stickers\StickerQueryServiceTest
✓ list students by class returns rows 0.01s
✓ list students for print all excludes youth and kg 0.02s
PASS Tests\Unit\Services\Roles\PermissionCrudServiceTest
✓ create and update permission 0.01s
FAIL Tests\Unit\Services\Roles\RoleAssignmentServiceTest
assign roles creates user roles and staff 0.01s
PASS Tests\Unit\Services\Roles\RoleCrudServiceTest
✓ create and update role 0.02s
PASS Tests\Unit\Services\Roles\RoleDashboardServiceTest
✓ best dashboard route for returns route 0.01s
PASS Tests\Unit\Services\Roles\RolePermissionServiceTest
✓ save role permissions persists rows 0.01s
PASS Tests\Unit\Services\Roles\RoleQueryServiceTest
✓ list roles returns paginator 0.02s
✓ list users with roles returns roles 0.01s
PASS Tests\Unit\Services\Roles\RoleSwitchServiceTest
✓ get user role names returns roles 0.02s
PASS Tests\Unit\Services\School\AccountEventServiceTest
✓ new account added creates family links 0.02s
✓ delete unverified user handles missing admin emails 0.01s
FAIL Tests\Unit\Services\School\EnrollmentEventServiceTest
admission under review sends email 0.01s
admission under review requires email 0.02s
FAIL Tests\Unit\Services\School\PaymentEventServiceTest
payment received sends email 0.01s
extra charge requires email 0.01s
PASS Tests\Unit\Services\School\SemesterSelectionServiceTest
✓ selected teacher semester prefers session value 0.02s
✓ selected teacher semester falls back to config 0.01s
FAIL Tests\Unit\Services\SchoolIds\SchoolIdAssignmentServiceTest
assigns school id when missing 0.01s
✓ assign returns existing school id 0.02s
PASS Tests\Unit\Services\SchoolIds\SchoolIdGenerationServiceTest
✓ generates student school id with prefix 0.01s
✓ generates user school id with prefix 0.01s
PASS Tests\Unit\Services\Scores\AttendanceCalculatorTest
✓ calculate uses configured days 0.02s
PASS Tests\Unit\Services\Scores\ExamScoreServiceTest
✓ list returns latest exam score 0.01s
✓ update creates exam score and missing override 0.01s
PASS Tests\Unit\Services\Scores\HomeworkCalculatorTest
✓ calculate returns average score 0.02s
PASS Tests\Unit\Services\Scores\HomeworkScoreServiceTest
✓ list includes semester variants 0.02s
✓ add column inserts next index 0.01s
PASS Tests\Unit\Services\Scores\ParticipationScoreServiceTest
✓ list returns participation scores 0.02s
✓ update updates existing scores 0.01s
FAIL Tests\Unit\Services\Scores\ProjectCalculatorTest
calculate returns average score 0.01s
PASS Tests\Unit\Services\Scores\ProjectScoreServiceTest
✓ list returns headers and scores 0.02s
✓ update creates scores and missing overrides 0.01s
✓ add column inserts next index 0.01s
PASS Tests\Unit\Services\Scores\QuizCalculatorTest
✓ calculate returns average score 0.02s
PASS Tests\Unit\Services\Scores\QuizScoreServiceTest
✓ list returns headers and scores 0.02s
✓ update creates scores and missing overrides 0.01s
✓ add column inserts next index 0.02s
PASS Tests\Unit\Services\Scores\ScoreCommentServiceTest
✓ list returns comments for students 0.01s
✓ save returns validation errors for short comment 0.01s
PASS Tests\Unit\Services\Scores\ScoreDashboardServiceTest
✓ overview returns students and scores 0.02s
✓ view student scores groups by year and semester 0.01s
PASS Tests\Unit\Services\Scores\ScorePredictorServiceTest
✓ report builds predictions 0.01s
PASS Tests\Unit\Services\Scores\ScoreTermServiceTest
✓ semester and school year fallback to configuration 0.02s
✓ normalize and variants 0.01s
PASS Tests\Unit\Services\Scores\SemesterScoreServiceTest
✓ update student scores upserts semester scores 0.03s
FAIL Tests\Unit\Services\Security\IpBanCommandServiceTest
ban now updates blocked until 0.02s
unban all resets active 0.01s
FAIL Tests\Unit\Services\Security\IpBanQueryServiceTest
paginate filters active 0.01s
PASS Tests\Unit\Services\Security\Pbkdf2HasherTest
✓ hash and verify 0.95s
PASS Tests\Unit\Services\Semesters\SemesterConfigServiceTest
✓ reads dates from configuration 0.01s
PASS Tests\Unit\Services\Semesters\SemesterRangeServiceTest
✓ get school year range falls back when config missing 0.01s
✓ get semester for date uses config dates 0.02s
✓ normalize semester 0.01s
PASS Tests\Unit\Services\Settings\ConfigurationServiceTest
✓ store creates config 0.01s
PASS Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarContextServiceTest
✓ event types returns list 0.02s
PASS Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarFormatterServiceTest
✓ format event sets background for no school 0.01s
✓ format event normalizes iso dates to plain calendar date 0.01s
PASS Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarMeetingServiceTest
✓ list meetings filters for parent 0.02s
FAIL Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarMutationServiceTest
✓ create persists event 0.02s
update persists changes 0.01s
FAIL Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarNotificationServiceTest
notify returns empty when no targets 0.02s
PASS Tests\Unit\Services\Settings\SchoolCalendar\SchoolCalendarQueryServiceTest
✓ list events filters by school year 0.01s
✓ filter events for audience limits visibility 0.01s
PASS Tests\Unit\Services\Settings\SettingsServiceTest
✓ update persists settings 0.02s
PASS Tests\Unit\Services\Staff\StaffCommandServiceTest
✓ create requires user 0.01s
✓ create with user id 0.01s
PASS Tests\Unit\Services\Staff\StaffQueryServiceTest
✓ paginate returns staff 0.02s
PASS Tests\Unit\Services\Staff\StaffTimeOffLinkServiceTest
✓ token round trip 0.01s
✓ token invalid on expiry 2.02s
PASS Tests\Unit\Services\Students\StudentAssignmentServiceTest
✓ assign creates student class rows 0.04s
✓ remove deletes assignment 0.01s
FAIL Tests\Unit\Services\Students\StudentProfileServiceTest
update student saves allergies 0.01s
FAIL Tests\Unit\Services\Students\StudentScoreCardServiceTest
score card returns rows and comments 0.02s
PASS Tests\Unit\Services\Subjects\SubjectCurriculumServiceTest
✓ store creates entry 0.01s
✓ update changes title 0.01s
PASS Tests\Unit\Services\Support\ContactMessageServiceTest
✓ send returns payload 0.02s
PASS Tests\Unit\Services\Support\SupportRequestServiceTest
✓ create persists request 0.02s
PASS Tests\Unit\Services\System\CleanupSchedulerServiceTest
✓ should run when no cache 0.01s
✓ mark run sets cache 0.02s
✓ run unverified cleanup calls artisan 0.01s
PASS Tests\Unit\Services\System\ConfigUpdateServiceTest
✓ run task rejects unknown task 0.01s
✓ run task sets config when forced 0.02s
PASS Tests\Unit\Services\System\GlobalConfigServiceTest
✓ get semester and school year 0.01s
PASS Tests\Unit\Services\System\HealthCheckServiceTest
✓ check returns payload 0.01s
PASS Tests\Unit\Services\System\TimeServiceTest
✓ to utc and to local round trip 0.02s
FAIL Tests\Unit\Services\Teachers\TeacherAbsenceServiceTest
form data returns available dates 0.02s
submit creates staff attendance 0.01s
PASS Tests\Unit\Services\Teachers\TeacherAssignmentServiceTest
✓ assign creates teacher class row 0.02s
✓ delete removes assignment 0.01s
PASS Tests\Unit\Services\Teachers\TeacherDashboardServiceTest
✓ class view returns students 0.02s
PASS Tests\Unit\Services\TrophyReportServiceTest
✓ calculate threshold enforces minimum of three winners 0.02s
✓ projection marks students without fall scores as not projected 0.02s
✓ final report classifies confirmed surprise and missed winners 0.02s
PASS Tests\Unit\Services\Ui\UiStyleServiceTest
✓ update creates preferences 0.02s
PASS Tests\Unit\Services\Users\DeleteUnverifiedUserServiceTest
✓ delete after timeout deletes user 0.02s
✓ delete after timeout skips recent user 0.01s
PASS Tests\Unit\Services\Users\InactiveUserCleanupServiceTest
✓ cleanup removes inactive users and roles 0.02s
PASS Tests\Unit\Services\Users\LoginActivityServiceTest
✓ list returns paginated payload 0.01s
PASS Tests\Unit\Services\Users\UserEventServiceTest
✓ handle new account sends email 0.01s
✓ handle new account requires email 0.02s
PASS Tests\Unit\Services\Users\UserListServiceTest
✓ list includes roles and second parent flag 0.02s
PASS Tests\Unit\Services\Users\UserManagementServiceTest
✓ create persists user and role and sends welcome 0.02s
✓ update changes user fields 0.02s
✓ delete removes user and roles 0.01s
PASS Tests\Unit\Services\Whatsapp\WhatsappContactServiceTest
✓ list parent contacts returns primary and second 0.02s
PASS Tests\Unit\Services\Whatsapp\WhatsappContextServiceTest
✓ school year aliases generate expected values 0.02s
✓ has roster for year 0.01s
PASS Tests\Unit\Services\Whatsapp\WhatsappInviteBundleServiceTest
✓ bundle for parent returns links and emails 0.02s
✓ consolidate bundles merges by parent 0.02s
PASS Tests\Unit\Services\Whatsapp\WhatsappInviteEmailServiceTest
✓ send requires recipients 0.01s
✓ send dispatches email 0.01s
FAIL Tests\Unit\Services\Whatsapp\WhatsappInviteNotificationServiceTest
dispatch returns error when no listeners 0.02s
✓ dispatch triggers event when listener registered 0.03s
PASS Tests\Unit\Services\Whatsapp\WhatsappInviteServiceTest
✓ send returns success for parent mode 0.02s
PASS Tests\Unit\Services\Whatsapp\WhatsappLinkServiceTest
✓ upsert creates link 0.02s
✓ paginate filters by active 0.01s
PASS Tests\Unit\Services\Whatsapp\WhatsappMembershipServiceTest
✓ update membership saves primary 0.01s
✓ update membership returns error when table missing 0.02s
PASS Tests\Feature\Api\ApiAttendanceTemplateFeatureTest
✓ attendance comment templates can be managed through current api 0.03s
✓ attendance comment template validation blocks bad ranges 0.02s
✓ legacy attendance template aliases still work 0.03s
FAIL Tests\Feature\Api\ApiAuthenticationAndAuthorizationTest
✓ api login returns token and user object 0.06s
✓ session login also returns token and user object for spa clients 0.04s
✓ auth me requires authentication 0.02s
✓ auth me returns the current authenticated user 0.02s
admin only routes reject non admin users 0.03s
✓ protected api routes reject anonymous requests before business logi… 0.14s
PASS Tests\Feature\Api\ApiPreferencesFeatureTest
✓ authenticated user can create read update and delete preferences 0.03s
✓ non admin cannot list or manage another users preferences 0.03s
✓ admin can list and delete any users preferences 0.03s
✓ preferences validation rejects invalid options 0.02s
PASS Tests\Feature\Api\ApiPublicEndpointsTest
✓ health endpoint is available 0.01s
✓ public policy endpoints are available 0.02s
✓ public static pages are available 0.01s
✓ public frontend content endpoints do not server error 0.01s
✓ registration captcha endpoint returns captcha payload 0.02s
✓ invalid login payload is rejected cleanly 0.01s
PASS Tests\Feature\Api\ApiRolePermissionFeatureTest
✓ admin can manage roles permissions and assign roles 0.04s
✓ role permission validation rejects bad payloads 0.02s
FAIL Tests\Feature\Api\ApiRouteContractTest
every api route points to an existing controller method 0.01s
✓ api routes do not duplicate method and uri pairs 0.02s
✓ mutating api routes are protected unless explicitly public 0.05s
PASS Tests\Feature\Api\ApiUseCaseCoverageMatrixTest
✓ every api route is mapped to an explicit use case domain 0.01s
✓ required use case domains have route coverage 0.01s
✓ every protected api route rejects anonymous requests 0.21s
PASS Tests\Feature\Api\ApiUserManagementFeatureTest
✓ admin can create list update and delete a user through api 0.04s
✓ user creation validates required payload and unique email 0.02s
✓ user creation rejects nonexistent role id 0.02s
PASS Tests\Feature\Api\V1\Admin\AdministratorAbsenceControllerTest
✓ guest cannot access absence index 0.01s
✓ authenticated user can get absence index 0.02s
✓ absence store requires reason 0.01s
✓ absence store requires valid date format 0.01s
✓ absence store calls service and returns success 0.02s
PASS Tests\Feature\Api\V1\Administrator\AdministratorDashboardControllerTest
✓ metrics require authentication 0.02s
✓ metrics are forbidden for non admin users 0.02s
✓ metrics return payload for admin 0.03s
✓ user search passes query to service 0.02s
PASS Tests\Feature\Api\Administrator\AdministratorEnrollmentControllerTest
✓ guest cannot update enrollment statuses 0.03s
✓ can fetch enrollment withdrawal data 0.02s
✓ can fetch new students 0.02s
✓ update statuses requires valid status values 0.02s
✓ update statuses calls service 0.02s
PASS Tests\Feature\Api\V1\Admin\AdministratorEnrollmentQueryApiTest
✓ enrollment withdrawal endpoint returns students classes and years 0.02s
✓ new students endpoint returns transformed rows 0.02s
PASS Tests\Feature\Api\Administrator\AdministratorEnrollmentUpdateStatusesApiTest
✓ update statuses requires enrollment status payload 0.02s
✓ update statuses rejects invalid status value 0.02s
✓ update statuses creates new enrollment row 0.02s
✓ update statuses updates existing enrollment row 0.02s
✓ update statuses creates or updates refund when status is refund pen… 0.02s
✓ update statuses returns partial success when some students are inva… 0.02s
PASS Tests\Feature\Api\Administrator\AdministratorNotificationControllerTest
✓ can get alerts data 0.02s
✓ save alerts requires subjects payload 0.02s
✓ save alerts calls subject service 0.01s
✓ can get print recipients data 0.02s
✓ save print recipients requires notify payload 0.01s
✓ save print recipients calls service 0.01s
PASS Tests\Feature\Api\Administrator\AdministratorTeacherSubmissionControllerTest
✓ can get teacher submission report 0.02s
✓ notify requires notify payload 0.02s
✓ notify calls service 0.01s
PASS Tests\Feature\Api\Administrator\AdministratorTeacherSubmissionNotifyApiTest
✓ notify endpoint requires notify payload 0.02s
✓ notify endpoint sends email and creates history row 0.02s
✓ notify endpoint marks failed when teacher email is invalid 0.02s
✓ notify endpoint accepts flat teacher ids from spa payload 0.02s
✓ notify endpoint accepts flat teacher ids when teacher class has no… 0.02s
PASS Tests\Feature\Api\Administrator\AdministratorTeacherSubmissionReportApiTest
✓ teacher submission report endpoint returns rows summary and history 0.03s
✓ teacher submission report returns no students status for empty sect… 0.02s
✓ teacher submission report handles teacher class without semester co… 0.02s
✓ teacher submission report limits history to three entries 0.02s
✓ teacher submission report honors school year and semester query fil… 0.02s
PASS Tests\Feature\Api\V1\Administrator\EmergencyContactControllerTest
✓ index returns grouped contacts 0.03s
✓ update changes emergency contact 0.02s
✓ destroy deletes emergency contact 0.02s
✓ show returns single contact for parent 0.02s
✓ update requires matching parent id 0.02s
✓ destroy requires matching parent id 0.02s
PASS Tests\Feature\Api\V1\Administrator\TeacherClassAssignmentControllerTest
✓ index returns teachers and classes 0.02s
✓ store and delete assignment 0.02s
PASS Tests\Feature\Api\V1\Administrator\TrophyControllerTest
✓ index requires authentication 0.02s
✓ index is forbidden for non admin users 0.02s
✓ index returns projection for admin 0.02s
✓ winners returns data for admin 0.03s
✓ final returns data for admin 0.02s
✓ index validates percentile range 0.02s
PASS Tests\Feature\Api\AssignmentApiControllerTest
✓ index returns assignment overview 0.02s
✓ index filters by school year 0.02s
✓ index sorts sections by name 0.02s
✓ index excludes inactive students 0.02s
✓ store creates new assignment 0.02s
✓ store updates existing assignment for same unique keys 0.02s
✓ store validates required fields 0.02s
✓ store validates foreign keys 0.02s
✓ class assignment data returns expected structure 0.02s
✓ class assignment data deduplicates teacher names 0.02s
PASS Tests\Feature\Api\AssignmentApiTest
✓ it returns assignment sections json 0.02s
✓ it filters assignments by school year 0.02s
✓ it creates or updates student assignment 0.02s
✓ it validates required fields when storing assignment 0.01s
✓ store is idempotent for same student semester and year 0.02s
✓ guest cannot access assignment api when auth is required 0.02s
PASS Tests\Feature\Api\V1\Attendance\LateSlipLogsControllerTest
✓ index requires admin 0.02s
✓ index returns logs 0.02s
✓ show returns log 0.02s
✓ destroy deletes log 0.02s
✓ index validation rejects bad dates 0.02s
PASS Tests\Feature\Api\AttendanceCommentTemplateApiTest
✓ can list templates 0.02s
✓ can list templates active only 0.02s
✓ can create template 0.01s
✓ store validation fails when max less than min 0.01s
✓ can show template 0.02s
✓ can update template 0.01s
✓ update validation fails if both scores invalid relation 0.01s
✓ can delete template 0.02s
✓ legacy list data endpoint returns templates key 0.01s
PASS Tests\Feature\Api\V1\AttendanceTracking\AttendanceTrackingControllerTest
✓ pending violations returns json response 0.02s
✓ notified violations returns json response 0.02s
✓ student case returns service payload 0.01s
✓ student case returns service status code when not found 0.01s
✓ record validates and returns service response 0.02s
✓ record returns validation errors for bad payload 0.01s
✓ send auto emails returns service response 0.01s
✓ compose returns service response 0.02s
✓ send manual email returns service response 0.01s
✓ send manual email validates payload 0.01s
✓ parents info returns service response 0.02s
✓ save notification note returns service response 0.01s
✓ save notification note validates payload 0.01s
PASS Tests\Feature\Api\V1\Auth\IpBanControllerTest
✓ index requires admin 0.03s
✓ index returns bans 0.02s
✓ show returns ban 0.02s
✓ ban creates block 0.02s
✓ unban single 0.02s
✓ unban all 0.02s
✓ ban validation requires ip or id 0.02s
PASS Tests\Feature\Api\V1\Auth\RegisterControllerTest
✓ captcha endpoint returns value 0.01s
✓ register creates user 0.33s
PASS Tests\Feature\Api\V1\Auth\RegisterPayloadDebugTest
✓ debug payload shows json body 0.01s
PASS Tests\Feature\Api\BadgeControllerTest
✓ form data returns success response 0.02s
✓ print status returns success response 0.02s
✓ print status returns 500 when service throws 0.02s
✓ log print returns success response 0.02s
✓ log print returns 500 when service throws 0.01s
✓ generate pdf returns pdf response 0.02s
✓ generate pdf validates required user ids 0.01s
✓ log print validates required user ids 0.02s
✓ endpoints require authentication 0.02s
PASS Tests\Feature\Api\V1\BadgeScan\BadgeScanControllerTest
✓ scan is public but validates badge value 0.02s
✓ scan returns 404 for unrecognized badge 0.02s
✓ logs require authentication 0.01s
✓ logs are forbidden for non staff roles 0.02s
✓ logs return data for staff 0.02s
PASS Tests\Feature\Api\V1\BroadcastEmail\BroadcastEmailControllerTest
✓ options returns parents and senders 0.02s
✓ send test only dispatches email 0.02s