{"version":2,"defects":{"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftAcceptsValidPositionId":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftAcceptsNullPositionId":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftOpenShiftAllowsAnyPositionId":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftAcceptsValidPositionId":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftToOpenShiftPreservesPositionId":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftCreatesOpenShiftWhenEmployeeIdMissing":8,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftCreatesOpenShiftWhenEmployeeIdExplicitlyNull":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesPositionInfo":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTasks":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTaskSummary":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentNoPosition":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentUnscheduled":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentGracefulDegradationOnTaskError":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTimeRange":8,"Tests\\Unit\\AccessConditionExpressionTest::testEvaluateConditionWithParams":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_returnsCachedDataOnHit":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_cachesMissedData":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_usesCacheWhenAvailable":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_setsCorrectCacheTTL":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getCohorts_usesDifferentCacheKeyThanOverview":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::invalidateCache_clearsAllRetentionCacheKeys":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::getSupportedMetrics_returnsMetricDefinitions":7,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_usesCaching":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_usesCaching":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::comparePeriods_usesCaching":1,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::clearCache_removesAllCachedDataForStore":1,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallDetectsApiKeyAuthorizationHeader":8,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallDetectsXApiKeyHeader":8,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallPrefersXApiKeyOverMissingAuthorizationHeader":8,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallPrioritizesApiKeyOverSession":8,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_stores_correct_user_id":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_sets_correct_expiration":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_valid_token_returns_user_id_and_new_token":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateToken_valid_token_returns_user_id":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_revokeAllForUser_deletes_all_tokens_for_user":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_revokeAllForUser_executes_delete_query":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_cleanupExpiredTokens_uses_correct_query":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_preserves_user_id":7,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_uses_correct_table":7,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByName_trims_names":7,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByNameInStore_uses_store_parameter":7,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testStoreCanBeInstantiatedWithoutId":8,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testLegacyAliasAndNewClassAreSame":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsTrueWhenNull":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsTrueWhenEmptyString":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsTrueWhenZeroInt":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsTrueWhenZeroString":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsFalseWhenHasCategory":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_isEmpty_returnsFalseWhenHasCustomCategory":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_addCustomTag_addsNewTag":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_addCustomTag_returnsTrueIfExists":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_addCustomTag_returnsFalseOnError":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_addCustomTag_insertsWithCustomCategoryType":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_clearAllCategories_nullsMainCategoryAndDeletes":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_clearAllCategories_returnsFalseOnError":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_callsAddPOSTagForPOSCategories":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_callsAddCustomTagForCustomCategories":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_handlesMixedPOSAndCustom":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_skipsUnknownCategories":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_skipsDuplicatesSilently":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_emptyArrayReturnsTrue":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_returnsFalseIfAnyTagFails":8,"Tests\\Unit\\Backstock\\AddItemsActionTest::test_mergeCategoryTags_usesIsPOSFlagNotIsNumeric":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_happyPath_allBinsUpdated":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_skipsBinAlreadyAtTargetLocation":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_partialFailure_binNotFound":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_invalidLocationId_throwsException":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_emptyBinIds_returnsEmptyResults":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massEmptyBins_happyPath_binEmptied":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massEmptyBins_skipsBinAlreadyEmpty":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massEmptyBins_partialFailure":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeCategory_happyPath":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeCategory_customCategoryType":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeCategory_noSkipEvenIfSameCategory":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeTags_addMode_tagsAppended":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeTags_removeMode_tagsRemoved":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massHideBins_happyPath":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massHideBins_skipsAlreadyHidden":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUnhideBins_happyPath":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUnhideBins_skipsAlreadyActive":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUpdateAge_happyPath":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUpdateAge_noSkipEvenIfSameDate":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massAddNotes_noteAppendedWithDatePrefix":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massAddNotes_nullNotes_setsDirectly":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massPrintLabels_createsJobAndReturnsUUID":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massPrintLabels_quantityRespected":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeLocation_dbException_rollsBack":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeTags_invalidMode_throwsException":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeCategory_invalidCategoryType_throwsException":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUpdateAge_invalidDateFormat_throwsException":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUpdateAge_invalidDate_throwsException":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massHideBins_populatesBinsArray":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeCategory_emptyBinIds_returnsEmptyResults":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massChangeTags_emptyBinIds_returnsEmptyResults":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massUpdateAge_emptyBinIds_returnsEmptyResults":8,"Tests\\Unit\\Backstock\\BackstockFactoryMassEditTest::test_massAddNotes_emptyBinIds_returnsEmptyResults":8,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testControllerAcceptsServices":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testConstructorRequiresUsageTracker":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testLogBillingUsageWithSuccess":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testLogBillingUsageWithFailure":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testLogBillingUsageWithNonBillableCategory":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testLogBillingUsageDoesNotThrowOnTrackerFailure":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testNullTrackerWorks":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountGsm7SingleSegment":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountGsm7TwoSegments":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountGsm7ThreeSegments":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountUcs2SingleSegment":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountUcs2TwoSegments":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountEmojiSurrogatePairs":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountEmojiMultipleSegments":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountEmptyMessage":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testCalculateSegmentCountMixedContent":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testSendCustomTextWithBillingCategoryOverride":8,"Tests\\Unit\\Billing\\Integration\\TextMessageServiceBillingTest::testSendCustomTextDefaultsToCustomCategory":8,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_handle_generates_invoices_for_all_active_stores":7,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_idempotent_rerun_skips_stores_with_existing_invoices":7,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_single_store_failure_doesnt_block_other_stores":7,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_returns_success_with_metrics":7,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGeneratePdfReturnsNonEmptyString":8,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGeneratePdfStartsWithPdfMarker":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getTemplates_ReturnsAllTemplatesIncludingInactive":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getTemplates_IncludesIsSystemFlag":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getTemplates_IncludesEditStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getTemplates_ReturnsEmptyArrayWhenNoTemplates":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_CreatesWithRequiredFields":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_ValidatesRequiredFields":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_ValidatesCategory":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_CalculatesSegmentCount":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_RejectsContentExceeding320Characters":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_NewTemplatesAreNeverSystemTemplates":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_UpdatesShortNameContentIsActive":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_RecalculatesSegmentCountOnContentChange":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_Returns404ForNonexistentTemplate":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_SystemTemplateContentCannotBeModified":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_SystemTemplateIsActiveCanBeModified":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_deleteTemplate_DeletesNonSystemTemplateSuccessfully":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_deleteTemplate_Returns404ForNonexistentTemplate":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_deleteTemplate_RejectsSystemTemplate":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_deleteTemplate_SystemTemplateRemainsInDatabase":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getCustomerHistory_ReturnsAllThreadsForCustomer":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getCustomerHistory_IncludesFullMessageHistory":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getCustomerHistory_IncludesDeliveryStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getCustomerHistory_ReturnsEmptyForCustomerWithNoHistory":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getUsageReport_ReturnsSummaryStats":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getUsageReport_FiltersByDateRange":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getUsageReport_IncludesByDayBreakdown":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getUsageReport_ReturnsZerosForNoActivity":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getUsageReport_DefaultsToLast30Days":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_allEndpoints_RequireAuthentication":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_allEndpoints_RequireChatAdminPermission":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_EmptyShortNameRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_EmptyContentRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_createTemplate_Exactly320CharactersIsValid":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_NoValidFieldsProvidedReturnsError":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_updateTemplate_ContentExceeds320CharactersRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_getCustomerHistory_HandlesThreadWithNoMessages":8,"Tests\\Unit\\Chat\\Controllers\\ChatAdminControllerTest::test_responseStructure_IsConsistent":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_ReturnsActiveThreadsSortedByLastMessageAt":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_StatusFilterWorks":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_StatusFilterMultipleStatuses":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_PaginationWithLimitParam":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_DefaultLimitIs50":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_IncludesCustomerName":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_IncludesBuyNumber":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_IncludesMessagePreview":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThreads_IncludesUnreadCount":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThread_ReturnsThreadWithMessages":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThread_MessagesIncludeDeliveryStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThread_IncludesCustomerContext":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThread_IncludesBuyContext":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getThread_Returns404ForNonexistentThread":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_WithTemplateId_WhenFreetextLocked":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_WithFreetextContent_WhenFreetextUnlocked":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_FreetextBlocked_WhenStaffCanFreetextFalse":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_CharacterLimitEnforcement_320Max":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_Exactly320Characters_IsValid":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_EmployeeIdIsRequired":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_ThreadMustExist":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_SavedWithPendingDeliveryStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_RequiresContentOrTemplateId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_sendMessage_CannotSendToClosedThread":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getEligible_ReturnsCustomersWithTodaysBuys":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getEligible_ExcludesOptedOutCustomers":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getEligible_IncludesHasActiveThreadFlag":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getEligible_ReturnsEmptyArrayWhenNoEligible":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_CreatesThreadWithPendingStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_RequiresCustomerId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_RequiresBuyId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_RequiresEmployeeId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_CustomerMustBeEligible":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_CannotCreateDuplicateForSameCustomer":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_createThread_ReturnsCreatedThread":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_closeThread_ClosesThreadAndSetsStatus":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_closeThread_RecordsClosedByEmployeeId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_closeThread_ThreadMustExist":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_closeThread_RequiresEmployeeId":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_closeThread_AlreadyClosedReturnsSuccess":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_ReturnsActiveTemplates":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_CategoryFilterWorks":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_IncludesCharacterCount":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_IncludesSegmentCount":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_ReturnsEmptyArrayWhenNoTemplates":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_getTemplates_SortedBySortOrder":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_permissions_RequiresValidSession":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_permissions_RequiresStoreGroupAccess":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_permissions_CsrfValidationForPostRequests":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_permissions_ValidCsrfAllowsPost":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_edgeCase_EmptyContentRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_edgeCase_WhitespaceOnlyContentRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_edgeCase_UnicodeContentHandled":8,"Tests\\Unit\\Chat\\Controllers\\ChatApiControllerTest::test_edgeCase_InvalidTemplateIdRejected":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_VonagePayloadParsing_ExtractsPhoneAndMessage":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_TwilioPayloadParsing_ExtractsPhoneAndMessage":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_InvalidPayload_Returns400":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_EmptyMessageBody_ProcessesCorrectly":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_DetectsVonageProvider_ByMsisdnField":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_DetectsTwilioProvider_ByFromField":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopCommand_DetectedAndProcessed":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopMarketingCommand_GranularOptOut":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"STOP\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"stop\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"Stop\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"UNSUBSCRIBE\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"unsubscribe\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"CANCEL\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"cancel\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"QUIT\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"quit\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"END\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"end\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"STOP MARKETING\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"stop marketing\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"Stop Marketing\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopVariations_AllRecognized with data set \"UNSUBSCRIBE MARKETING\"":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopCommand_CaseInsensitive":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopInSentence_NotDetected":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_StopCommand_TrimsWhitespace":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_OptOut_AddsToDoNotTextList":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_OptOut_SendsConfirmationMessage":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_OptOut_ClosesActiveThreads":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_OptOut_UpgradesMarketingToAll":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_AlreadyOptedOut_SendsConfirmationAnyway":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_PhoneRouting_FindsCorrectStore":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_UnroutablePhone_LogsAndReturns200":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_PhoneNormalization_Handles11Digit":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_NewCustomer_CreatesThread":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_ExistingThread_AddsMessage":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_ClosedThread_ReopensOnInbound":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_FreetextUnlock_OnCustomerReply":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_InboundMessage_SavedWithCorrectDirection":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_MessageTimestamp_UsesProviderTimestamp":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_AblyEvent_PublishedOnNewMessage":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_AblyEvent_PublishedOnNewThread":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_SuccessfulProcessing_Returns200":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_OptOutProcessing_Returns200":8,"Tests\\Unit\\Chat\\Controllers\\ChatWebhookControllerTest::test_InvalidPhone_Returns200ToProvider":8,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_RoutesToStoreViaSytemBuys":8,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_NormalizesPhoneBeforeLookup":8,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_ReturnsCustomerInfo":8,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_ReturnsStoreObject":8,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_FallbackWhenCustomerNotInStoreDb":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::constructor_sets_typeNum":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::constructor_accepts_optional_sms_queue":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getTypeNum_returns_correct_value":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::setDatabase_allows_injection_and_returns_self":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::setStore_allows_injection_and_returns_self":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::setAblyService_allows_injection_and_returns_self":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::setSmsQueue_allows_injection_and_returns_self":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getDatabase_returns_injected_database":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getDatabase_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getStore_returns_injected_store":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getStore_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getAblyService_returns_injected_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getAblyService_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createEventService_returns_event_service_instance":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createEventService_injects_database_dependency":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createEventService_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponService_returns_coupon_service_instance":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponService_injects_all_dependencies":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponService_includes_sms_queue_when_provided":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponService_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createRedemptionService_returns_redemption_service_instance":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createRedemptionService_injects_all_dependencies":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createRedemptionService_caches_result":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createEventServiceStatic_returns_event_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponServiceStatic_returns_coupon_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createCouponServiceStatic_accepts_optional_sms_queue":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createRedemptionServiceStatic_returns_redemption_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::createAblyServiceStatic_returns_ably_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::service_dependencies_are_properly_wired":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::coupon_service_uses_cached_event_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::redemption_service_uses_cached_coupon_service":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::supports_fluent_interface_for_dependency_injection":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::fluent_interface_supports_service_creation":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::supports_multiple_stores_with_different_factories":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::each_factory_maintains_independent_service_cache":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::handles_null_sms_queue_gracefully":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::can_replace_sms_queue_after_construction":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::typeNum_is_immutable_after_construction":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getDatabase_throws_exception_on_connection_failure":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getStore_returns_store_from_store_controller":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getAblyService_injects_event_service_into_ably":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::static_methods_create_new_factory_instances":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::factory_handles_null_database_until_needed":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::factory_handles_null_store_until_needed":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::services_can_be_created_multiple_times_with_same_dependencies":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::factory_supports_method_chaining_for_setup":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::getDatabase_calls_dbConnectByName_with_correct_db_name":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::different_typeNums_create_independent_factories":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::setSmsQueue_can_be_called_before_or_after_service_creation":8,"Tests\\Unit\\ComebackCash\\ComebackCashFactoryTest::factory_maintains_separate_caches_for_each_service_type":8,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRendersAdminPageWithStoreData":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainIncludesEventStatistics":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesMissingTablesGracefully":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesDatabaseErrorsGracefully":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesMissingStore":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testStatisticsAreCorrectlyCalculated":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testStatisticsDefaultToZero":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRendersWorkspacePageWithComebackCashActive":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesRequiredWorkspaceData":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesQueueAndCompletedBuysData":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesBreadcrumbData":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRedirectsToLoginWhenNotAuthenticated":1,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainHandlesMissingStore":1,"Tests\\Unit\\Core\\BuyQueueTest::testCreateNewBuy":1,"Tests\\Unit\\Core\\Controllers\\AccountControllerLoginTest::testLoginRedirectsBackToLoginOnCsrfFailureNonAjax":8,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_hero_has_demo_trigger_button":7,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreReturnsStoreInstance":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreRespectsOverrides":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetsCorrectStoreType":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetReturnsMultipleStoreTypes":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetHasCorrectTypeNums":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testTwilioStoreHasIntegrationEnabled":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testQuickbooksStoreHasIntegrationEnabled":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testWhenIWorkStoreHasIntegrationEnabled":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testHomebaseStoreHasIntegrationEnabled":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testFiveStarsStoreHasIntegrationEnabled":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testInactiveStoreHasCorrectFlags":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testProductionStoreHasCorrectFlags":8,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testIntegrationStoreMethodsRespectOverrides":8,"Tests\\Unit\\Core\\StoreHoursTest::testGetDefaultOpenTimeReturnsDefaultValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testSetDefaultOpenTimeUpdatesValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testGetDefaultCloseTimeReturnsDefaultValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testSetDefaultCloseTimeUpdatesValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testGetHoursLastUpdatedReturnsNullInitially":8,"Tests\\Unit\\Core\\StoreHoursTest::testSetHoursLastUpdatedUpdatesValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testGetHoursUpdatedByUserIdReturnsNullInitially":8,"Tests\\Unit\\Core\\StoreHoursTest::testSetHoursUpdatedByUserIdUpdatesValue":8,"Tests\\Unit\\Core\\StoreHoursTest::testCreateStoreFromRowArrayMapsHoursColumns":8,"Tests\\Unit\\Core\\StoreHoursTest::testCreateStoreFromRowArrayHandlesNullHoursColumns":8,"Tests\\Unit\\Core\\StoreHoursTest::testHoursValuesAreStoredInHHMMFormat":8,"Tests\\Unit\\Core\\StoreTest::testConstructorWithoutIdCreatesEmptyStore":8,"Tests\\Unit\\Core\\StoreTest::testCreateStoreFromRowArraySetsAllProperties":8,"Tests\\Unit\\Core\\StoreTest::testGettersReturnCorrectValues":8,"Tests\\Unit\\Core\\StoreTest::testSettersModifyProperties":8,"Tests\\Unit\\Core\\StoreTest::testGetCompanyNameReturnsCorrectBrand":8,"Tests\\Unit\\Core\\StoreTest::testGetCompanyNameHandlesAllStoreTypes":8,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsHomebaseWhenEnabled":8,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsWhenIWorkWhenEnabled":8,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsHomegrownDefault":8,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsTrueWhenComplete":8,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenMissingToken":8,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsTrueWhenBothTokensPresent":8,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsTrueFromDbColumn":8,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsFalseFromDbColumn":8,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsDefaultWhenNotMapped":8,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagDefaultsFalseWhenColumnNotSet":8,"Tests\\Unit\\Core\\StoreTest::testUpdateWiwTokenUpdatesDatabase":8,"Tests\\Unit\\Core\\StoreTest::testUpdateQbAccessTokenUpdatesDatabase":8,"Tests\\Unit\\Core\\StoreTest::testUpdateQbRefreshTokenUpdatesDatabase":8,"Tests\\Unit\\Core\\StoreTest::testUpdateCcTokensUpdatesDatabase":8,"Tests\\Unit\\Core\\StoreTest::testDisconnectCcClearsAllTokens":8,"Tests\\Unit\\Core\\StoreTest::testStoreType0ReturnsClothesMentor":8,"Tests\\Unit\\Core\\StoreTest::testStoreType1ReturnsPlatosCloset":8,"Tests\\Unit\\Core\\StoreTest::testStoreType2ReturnsOnceUponAChild":8,"Tests\\Unit\\Core\\StoreTest::testStoreType4ReturnsPlayItAgainSports":8,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenDisabled":8,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenMissingRealmId":8,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsFalseWhenMissingRefreshToken":8,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsFalseWhenMissingAccessToken":8,"Tests\\Unit\\Core\\StoreTest::testStoreType3ReturnsStyleEncore":8,"Tests\\Unit\\Core\\StoreTest::testEmployeeSourcePriorityHomebaseOverWhenIWork":8,"Tests\\Unit\\Core\\StoreTest::testSmsConfigurationGettersAndSetters":8,"Tests\\Unit\\Core\\StoreTest::testOperationalSettingsGettersAndSetters":8,"Tests\\Unit\\Core\\StoreTest::testBillingConfigurationGettersAndSetters":8,"Tests\\Unit\\Core\\StoreTest::testShopifyIntegrationGettersAndSetters":8,"Tests\\Unit\\Core\\StoreTest::testFiveStarsIntegrationGettersAndSetters":8,"Tests\\Unit\\Core\\StoreTest::testReceiptCouponConfigGettersAndSetters":8,"Tests\\Unit\\DrsMetadataTest::testBrandsTableHasConceptColumnWithPcDefault":1,"Tests\\Unit\\DrsMetadataTest::testCompositePrimaryKeyOnAllTables":1,"Tests\\Unit\\DrsMetadataTest::testConceptIsolationInserts":1,"Tests\\Unit\\DrsMetadataTest::testExistingBrandDataPreserved":1,"Tests\\Unit\\DrsMetadataTest::testSubcategoriesRetainsCatIDColumn":1,"Tests\\Unit\\DrsMetadataTest::testAllTablesHaveConceptColumn":1,"Tests\\Unit\\DrsMetadataTest::testConstructorRejectsInvalidConcept":1,"Tests\\Unit\\DrsMetadataTest::testConstructorRejectsInvalidTable":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleCreatesNewRecords":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleUpdatesExistingRecords":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsEmptyNames":1,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesSucceedsWithValidCatIDs":1,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesRejectsInvalidCatIDs":1,"Tests\\Unit\\DrsMetadataTest::testConceptIsolationInImporter":1,"Tests\\Unit\\DrsMetadataTest::testIdempotentReimport":1,"Tests\\Unit\\DrsMetadataTest::testPreTransactionValidationPreventsInserts":1,"Tests\\Unit\\DrsMetadataTest::testTransactionRollbackOnDbError":1,"Tests\\Unit\\DrsMetadataTest::testGetConceptFromTypeNumReturnsConcept":1,"Tests\\Unit\\DrsMetadataTest::testDrsMetadataRouteFileExists":1,"Tests\\Unit\\DrsMetadataTest::testDrsPhpRequiresMetadataFile":1,"Tests\\Unit\\DrsMetadataTest::testRouteConceptValidationMatchesModel":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsFloatIds":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsScientificNotationIds":1,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesRejectsNonNumericCatID":1,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsArrayNames":1,"Tests\\Unit\\DrsMetadataTest::testAllFiveTablesHaveConstants":1,"Tests\\Unit\\DrsMetadataTest::testIntegrationFullBrandImportFlow":1,"Tests\\Unit\\DrsMetadataTest::testIntegrationCategoriesThenSubcategories":1,"Tests\\Unit\\DrsMetadataTest::testIntegrationTwoConceptIsolation":1,"Tests\\Unit\\DrsMetadataTest::testIntegrationIdempotency":1,"Tests\\Unit\\DrsMetadataTest::testE2eBrandImportAndConceptDerivation":1,"Tests\\Unit\\DrsMetadataTest::testMigrationPreservedAllBrands":1,"Tests\\Unit\\DrsMetadataTest::testPerformanceLargePayload":1,"Tests\\Unit\\DrsMetadataTest::testSecurityInvalidConceptRejected":1,"Tests\\Unit\\DrsMetadataTest::testAllFiveTableImportsWork":1,"Tests\\Unit\\DrsMetadataTest::testArchitectureCompliance":1,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_handles_empty_user_updates":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_handles_empty_assignment_updates":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::syncEmployees_returns_error_when_homebase_not_configured":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::getActiveEmployees_handles_cache_exception_gracefully":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_with_only_user_field_updates":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_with_only_assignment_field_updates":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_can_update_all_user_fields_at_once":8,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_can_update_all_assignment_fields_at_once":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_emergencyContactPhone_field_only":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_hireDate_field_only":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_clockPin_field_only":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::getActiveEmployees_returns_multiple_employees_in_unified_mode":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_handles_no_data_changes":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::getEmployee_with_all_fields_populated":8,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_multiple_emergencyContact_fields":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::supportsCreate_returns_false":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::supportsSync_returns_true":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::createEmployee_throws_exception":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::getEmployee_returns_employee_from_unified_tables":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::getEmployee_returns_null_when_not_found":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::updateEmployee_updates_user_and_assignment_fields":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_deactivates_store_assignment":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_accepts_null_reason":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::syncEmployees_returns_error_when_homebase_not_configured":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::syncEmployees_returns_error_when_store_has_no_api_key":8,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_returns_false_when_not_found":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_fetches_from_database_on_cache_miss":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_cached_data_on_hit":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_empty_array_when_no_employees":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getEmployee_unified_returns_employee_from_central_database":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getEmployee_unified_returns_null_when_not_found":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::updateEmployee_unified_updates_user_table":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::deactivateEmployee_unified_returns_false_when_assignment_missing":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::updateEmployee_unified_updates_assignment_fields":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_caches_results_for_reuse":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::setCache_allows_injection_of_cache_client":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getEmployee_returns_employee_in_unified_mode":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getEmployee_returns_null_when_not_found_unified":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_updates_user_fields_in_unified_mode":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::deactivateEmployee_returns_false_when_assignment_not_found_unified":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getActiveEmployees_returns_empty_array_when_no_employees_unified":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::constructor_connects_to_central_database_when_not_provided":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_updates_assignment_fields_in_unified_mode":8,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_handles_mixed_user_and_assignment_fields":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::supportsCreate_returns_false":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::supportsSync_returns_true":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::createEmployee_throws_exception":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::getEmployee_returns_employee_from_unified_tables":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::getEmployee_returns_null_when_not_found":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::updateEmployee_updates_user_and_assignment_fields":8,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::deactivateEmployee_deactivates_store_assignment":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_fetches_from_database_on_cache_miss":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_cached_data_on_hit":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_empty_array_when_no_employees":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_handles_corrupted_cache_gracefully":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getEmployee_unified_returns_employee_from_central_database":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getEmployee_unified_returns_null_when_not_found":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::updateEmployee_unified_updates_user_table_fields":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::updateEmployee_unified_updates_store_assignment_fields":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::deactivateEmployee_unified_returns_false_when_assignment_missing":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::deactivateEmployee_unified_deactivates_store_assignment":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_caches_results_for_reuse":8,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::setCache_allows_injection_of_cache_client":8,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_draft_to_active_returns_false":7,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetAllRewardsDelegatesToService":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetAllPromotionsDelegatesToService":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetPointsAndRewardsByPhoneDelegatesToService":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneDelegatesToService":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testAddMemberDelegatesToService":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneReturnsErrorWhenNotEnoughPoints":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneReturnsErrorWhenAllDuplicates":8,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetPointsAndRewardsByPhoneResponseFormatIsBackwardCompatible":8,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetFiveStarsSettingsReturnsStoreConfig":8,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCheckSalesDayHashDelegatesToService":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCheckSalesDayHashReturnsFalseWhenNoMatch":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testReceiveSalesDataDelegatesToServices":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsForDayDelegatesToPointsService":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPostsForDayDelegatesToPointsService":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsReportByDateRangeDelegatesToPointsService":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCreateReportVarsByRowDelegatesToPointsService":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testReceiveSalesDataReturnsCorrectFormat":2,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsReportByDateRangeReturnsCorrectFormat":2,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testConstructorAcceptsDependencies":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testConstructorAcceptsOptionalLogger":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithTaxIncluded":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithTaxExcluded":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithBuysIncluded":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithNegativeSalesUsesCeil":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithPointsRatio":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithMultipleCustomers":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithNoSalesData":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayUsesPreparedStatements":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingCreatesFsOutgoingRecords":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingSkipsZeroPoints":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingUsesStoreSoftwareId":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingWithNoPendingPoints":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeReturnsAllFields":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeFiltersBuys":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeUsesStoreTimezone":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesPendingStatus":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesRedemption":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesErrorStatus":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeWithEmptyResults":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testLoggingOnSuccessNoSecretsLeaked":8,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testLoggingOnFailureNoSecretsLeaked":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testConstructorAcceptsAllDependencies":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testConstructorAcceptsOptionalLogger":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsFromCacheWhenCacheExists":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsDoesNotCallApiWhenCacheExists":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsFromApiWhenCacheMiss":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsCachesApiResponse":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsSets2HourTtl":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsTransformsToRewardObjects":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsReturnsEmptyArrayWhenNoItems":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsHandlesMissingItemsKey":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsHandlesApiFailure":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllRewardsFallsBackToApiOnRedisFailure":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllPromotionsFromCacheWhenCacheExists":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllPromotionsFromApiWhenCacheMiss":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetAllPromotionsSets24HourTtl":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetPointsAndRewardsByPhoneReturnsCustomerInfo":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetPointsAndRewardsByPhoneFiltersRewardsByPoints":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testGetPointsAndRewardsByPhoneHandlesMemberNotFound":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRedeemRewardByPhoneSuccessfullyRedeems":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRedeemRewardByPhoneRemovesDuplicateUids":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRedeemRewardByPhoneReturnsErrorWhenAllDuplicates":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRedeemRewardByPhoneHandlesNotEnoughPoints":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRedeemRewardByPhoneHandlesApiFailure":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testAddMemberCreatesNewAccount":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testAddMemberHandlesApiError":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testLoggingDoesNotLeakSecrets":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testRewardsCacheKeyUsesTypeNumPrefix":8,"Tests\\Unit\\FiveStars\\Services\\RewardsServiceTest::testPromotionsCacheKeyUsesTypeNumPrefix":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_inserts_sale_records":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_inserts_multiple_sale_records":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_skips_null_phone_numbers":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_counts_all_null_phone_records":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_returns_count_metrics":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_returns_date_in_correct_format":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_tracks_insert_errors":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_throws_exception_on_invalid_json":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_throws_exception_on_empty_string":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_throws_exception_on_malformed_json":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_handles_empty_array":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_checkSalesDayHash_returns_true_when_hash_matches":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_checkSalesDayHash_returns_false_when_hash_does_not_match":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_checkSalesDayHash_returns_false_when_no_record_exists":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_insertSalesDayHash_creates_new_record":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_insertSalesDayHash_returns_false_on_failure":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_insertSalesDayHash_binds_correct_values":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_uses_store_timezone":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_accepts_custom_date":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_handles_different_timezone_stores":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_logs_ingestion_activity":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_logs_errors_without_secrets":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_works_without_logger":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_constructor_accepts_all_dependencies":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_constructor_works_without_logger":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_detects_sale_transaction_type":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_detects_buy_transaction_type":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_detects_return_transaction_type":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_handles_unknown_transaction_type":8,"Tests\\Unit\\FiveStars\\Services\\SalesIngestionServiceTest::test_processSalesData_handles_pdo_exceptions":8,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_lookup_returns_customer_and_rewards_for_valid_phone":8,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_returns_success_for_valid_data":8,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_host_environment_variable_is_set":7,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_test_name_environment_variable_is_set":7,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_username_environment_variable_is_set":7,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_password_environment_variable_is_set":7,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_klogger_class_is_loaded":7,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_database_connection_is_established_on_setup":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_database_connection_has_exception_mode_enabled":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_transaction_is_active_after_setup":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_can_execute_queries_within_transaction":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_inserted_data_exists_within_test":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_data_from_previous_test_is_not_visible":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_executeQuery_helper_returns_array":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_executeStatement_helper_returns_affected_rows":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_getLastInsertId_returns_valid_id":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_multiple_inserts_are_visible_within_transaction":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_updates_are_visible_within_transaction":1,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_deletes_are_visible_within_transaction":1,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_returns_store_instance":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_typenum":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_dbname":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_timezone":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_overrides":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_sets_typenum_on_store":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_sets_matching_dbname":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_parses_store_type_from_typenum":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_parses_store_num":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_twilio":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_quickbooks":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_fivestars":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_wheniwork":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_homebase":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_shopify":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_constant_contact":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_supports_multiple_integrations":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_timezone_sets_timezone":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_timezone_accepts_common_timezones":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_builder_methods_can_be_chained":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_overrides_take_precedence_over_builder":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_default_store_has_standard_test_values":8,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_default_store_has_sane_operational_defaults":8,"Tests\\Unit\\KLoggerTest::testLoggerCreatesFileIfNotExists":8,"Tests\\Unit\\KLoggerTest::testLoggerUsesErrorLogWhenFileCannotBeCreated":8,"Tests\\Unit\\KLoggerTest::testLoggerWritesToErrorLogWhenFileOpenFails":1,"Tests\\Unit\\LegacyTableEliminationTest::testStoreMigrationServiceDoesNotReferenceUfUser":7,"Tests\\Unit\\LegacyTableEliminationTest::testStoreMigrationServiceUsesUsersTableForUpdate":7,"Tests\\Unit\\LegacyTableEliminationTest::testStoreConfigControllerDoesNotReferenceUfUser":7,"Tests\\Unit\\LegacyTableEliminationTest::testStoreConfigControllerUsesUsernameColumn":7,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testControllerCanBeInstantiated":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testGetCategoriesResponseStructure":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testGetSettingsMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testMarkCategoryReplenishedMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testGetBinDetailsMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testCreateTaskMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testCompleteTaskMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testGetOffsiteBinsMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testGetTasksMethodSignature":8,"Tests\\Unit\\MobileApi\\Controllers\\MobileReplenishmentControllerTest::testAllPublicMethodsExist":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testCreateFromEnvReturnsDisabledServiceWithoutKey":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedReturnsFalseWhenDisabled":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdateReturnsFalseWhenDisabled":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishYourTurnReturnsFalseWhenDisabled":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testGetChannelNameFollowsPattern":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testIsEnabledReturnsCorrectStatus":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedPayloadStructure":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdatePayloadStructure":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishYourTurnPayloadStructure":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testEventNamesFollowSpec":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedHandlesNullEstimatedWait":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdateHandlesNullEstimatedWait":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testBroadcastQueueUpdateReturnsStatus":8,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testWorkspaceChannelIsTypeNumOnly":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testStoreWithoutDrsApiKeySkips":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testStoreWithEmptyDrsApiKeySkips":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testCalculatesCorrectWindow":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testRespectsEarliestDataDate":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testInvalidWindowReturnsSkip":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testDetectsAndPublishesChunkedCommands":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testNewStoreFullBackfill":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testExistingStoreNoBoundaryReport":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testRechecksCommandedGapsForResolution":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testMarksPersistentGaps":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testManualPayloadOverride":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testReturnsSuccessWithMetrics":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testCheckpointCalledInLoops":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testPublisherFailureDoesNotCount":8,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testNoGapsDetectedReturnsZeroMetrics":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReportViewed_heatmap_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReportViewed_table_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_zeroCategoriesReturnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_largeDuration_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_cacheHitTrue_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_cacheHitFalse_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackBinCategoryAssigned_pos_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackBinCategoryAssigned_custom_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCreated_onsite_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCreated_offsite_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCompleted_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCompleted_zeroDuration_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackOffsiteReportPrinted_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReset_all_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReset_category_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutEvent_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutResolved_taskCompleted_returnsTrue":8,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutResolved_manualReset_returnsTrue":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_formulaCorrect":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_sortsByScoreDesc":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_negativeScoreDisplaysZero":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_zeroRackUnitsExcluded":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_hybridWindowUsesReplenishmentDate":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getSalesAggregation_groupsBySubCatID":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getBuysAggregation_groupsBySubCatID":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getTrackingForCategory_returnsLatest":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getTrackingForCategory_returnsNullWhenNotFound":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_cacheKeyFormat":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_invalidateCache_clearsKeys":8,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_usesCacheWhenAvailable":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageReturnsSuccessUnderLimit":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageFailsAtLimit":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageCleansPhoneNumber":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageUsesStoreTimezone":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageFailsOverLimit":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageSucceedsWhenCountIsZero":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCanSendMessageSucceedsAtOneBelowLimit":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testLogMessageInsertsRecord":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testLogMessageCleansPhoneNumber":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testLogMessageUsesStoreTimezone":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testLogMessageMultipleCalls":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testCleansInternationalPhoneFormat":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testErrorResponseIncludesCleanedPhone":8,"Tests\\Unit\\SMS\\FloodProtectorTest::testDifferentPhoneNumbersTrackedSeparately":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendServiceTextRejectsInvalidPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendServiceTextRejectsShortPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendServiceTextRejectsLongPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendBuyTextRejectsInvalidPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendSurveyTextRejectsInvalidPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendCustomTextRejectsInvalidPhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendServiceTextChecksFloodProtection":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendServiceTextLogsMessageOnSuccess":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendBuyTextChecksFloodProtection":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendSurveyTextChecksFloodProtection":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendCustomTextChecksFloodProtection":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextWithFirstName":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextWithoutFirstName":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextWithStorePhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextWithoutStorePhone":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildBuyTextWithFirstName":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildSurveyTextUsesCustomText":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildSurveyTextUsesDefaultWhenEmpty":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextExcludesLongFirstName":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testBuildServiceTextIncludesExactly20CharFirstName":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testDoesNotLogMessageOnSendFailure":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testValidPhonePassesValidation":8,"Tests\\Unit\\SMS\\TextMessageServiceTest::testSendCustomTextSendsExactMessage":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testProductionStoreIncludesStatusCallback":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDemoStoreDoesNotIncludeStatusCallback":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDemoStoreDispatchesSimulationJob":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testProviderMessageIdReturned":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testStatusCallbackUrlFormat":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testNoStatusCallbackWithoutSecret":8,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDispatchFailureDoesNotBreakFlow":8,"Tests\\Unit\\SMS\\VonageTextSenderTest::testProductionStoreUsesUpdatedWebhookUrl":8,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDemoStoreDispatchesSimulationJob":8,"Tests\\Unit\\SMS\\VonageTextSenderTest::testProviderMessageIdReturned":8,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDemoModeBlocksExternalSms":8,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDispatchFailureDoesNotBreakFlow":8,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testWhyNotReturnsExplanation":7,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationResponseFormat":7,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetApprovalQueueReturnsCombinedRequests":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetApprovalQueueRequiresManagePermission":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetApprovalQueueRequiresAuthentication":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testUrgencyNormalWhenMoreThan24Hours":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testUrgencySoonWhenLessThan24Hours":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testUrgencyUrgentWhenLessThan4Hours":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testUrgencyNormalWhenNoExpiration":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetApprovalQueueFiltersbyType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetApprovalQueueResponseStructure":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetRequestContextReturnsSwapData":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetRequestContextRequiresAuth":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testApproveRequestReturnsSuccess":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testApproveRequestRequiresType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testDenyRequestReturnsSuccess":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testDenyRequestWithOptionalNote":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testBatchActionReturnsResultStructure":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testBatchActionWithDeny":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testBatchActionRequiresValidAction":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testBatchActionRequiresRequestIds":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapReturnsSuccessStructure":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapWithDirectReassignment":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapRequiresSourceShift":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapRequiresTarget":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetAuditHistoryReturnsEntries":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testExportAuditHistoryMethodExists":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testApproveRequestRejectsInvalidType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testDenyRequestRequiresType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testDenyRequestRejectsInvalidType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetRequestContextRequiresType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testGetRequestContextRejectsInvalidType":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapRejectsDirectReassignmentWhenPolicyDisabled":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapAllowsDirectReassignmentWhenPolicyEnabled":8,"Tests\\Unit\\Scheduling\\Controllers\\ApprovalQueueControllerTest::testInitiateSwapSkipsPolicyCheckForRegularSwap":8,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testResolvesHomebaseForLegacyStores":1,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testExplicitHomebaseProviderTakesPrecedence":1,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_exists_returns_true_when_table_found":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_exists_returns_false_when_table_missing":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_count_affected_rows_returns_count":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_count_affected_rows_returns_null_when_table_missing":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_update_table_executes_update_and_returns_row_count":5,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_update_table_skips_missing_table":5,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_inserts_record_when_table_exists":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_skips_when_table_missing":8,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_records_failure_with_notes":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getAblyToken_returnsScopedToken":7,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::handle_fetches_pending_entries":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::job_continues_on_entry_failure":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::job_continues_on_channel_failure":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageSent_emitsEventWithAllProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageSent_handlesSystemMessageType":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageRead_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageRead_handlesZeroMessageCount":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackReactionAdded_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackReactionAdded_handlesVariousEmojis":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"public\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"manager\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"owner\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"owner\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"manager\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"shift_lead\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"staff\"":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelViewed_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelViewed_handlesEmptyChannel":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageEdited_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageEdited_handlesImmediateEdit":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageDeleted_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageDeleted_handlesImmediateDelete":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackImageUploaded_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackImageUploaded_handlesLargeFiles":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMentionSent_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMentionSent_handlesMaxMentions":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackPushOpened_emitsEventWithRequiredProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackPushOpened_handlesHighMessageIds":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeTypeNumInProperties":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeUserIdInPayload":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeTimestampInIso8601Format":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_handleNullUserId":8,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allTrackingMethods_returnTrueOnSuccess":8,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateStoreAccountPasswordQueriesUsersTable":7,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigPageControllerTest::testConfigurationRendersPageWithStoreData":8,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigPageControllerTest::testConfigurationRequiresPermission":8,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigPageControllerTest::testConfigurationRejectsWrongStoreGroup":8,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigPageControllerTest::testConfigurationRedirectsToLoginWhenNotAuthenticated":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_validates_and_returns_created_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_returns_400_for_invalid_input":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_returns_400_for_empty_body":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_updated_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_404_for_nonexistent_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_400_for_invalid_data":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_deactivates_and_returns_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_activates_and_returns_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_returns_404_for_nonexistent_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_getAcknowledgments_returns_404_for_nonexistent_alert":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_generic_exception_returns_500":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_records_acknowledgment_and_returns_success":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_duplicate_returns_success_idempotent":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getPending_error_returns_500":8,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_error_returns_500":8,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getAcknowledgedUsers_returns_user_list":7,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getPendingUsers_returns_users_who_have_not_acknowledged":7,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getPendingUsers_for_specific_stores":7,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_accepts_token_from_x_csrf_token_header":1,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_allows_token_reuse_for_ajax_calls":1,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_accepts_token_from_json_body":1,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_rejects_missing_token":1,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_update_modifies_execution":8,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_updateHeartbeat_updates_timestamp":8,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_employee_sync_job_skips_stores_without_provider":8,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_quickbooks_sync_job_configuration":7,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_quickbooks_sync_job_skips_unconfigured_stores":8,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_fivestars_sync_job_skips_unconfigured_stores":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_skips_stores_without_fivestars_configured":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_processes_pending_points_records":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_success_with_zero_records":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_uses_idempotency_service_for_each_record":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_skips_duplicates_and_increments_skipped_count":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_cached_response_for_duplicates":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_continues_on_individual_record_failure":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_handles_api_exception_for_record":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_reports_progress_after_each_record":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_respects_abort_signal":8,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_job_result_with_counts":8,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_failed_handler_does_not_throw":8,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_removes_expired_slides_from_store":8,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_updates_global_schedule_entries":8,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_handles_multiple_stores":8,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_no_op_when_nothing_expired":8,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_continues_on_store_error":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_checks_out_stranded_buys":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_skips_unprocessed_buys":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_handles_empty_queue":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_all_already_checked_out":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_mixed_buy_states":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_result_includes_store_typenum":8,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_failed_handler_does_not_throw":8,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_creates_new_member_for_homegrown":7,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_syncFromProvider_delegates_to_sync_service":2,"Tests\\Unit\\UserDatabaseTest::testCreateUser":8,"Tests\\Unit\\UserDatabaseTest::testUpdateUser":8,"Tests\\Unit\\UserDatabaseTest::testDeleteUser":8,"Tests\\Unit\\UserDatabaseTest::testUserGroupAssignment":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::schedule_panel_returns_disabled_when_wiw_not_enabled":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::schedule_panel_returns_employees_with_correct_status_mapping":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::schedule_panel_deduplicates_employees_with_multiple_shifts":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::select_most_relevant_shift_picks_current_over_future":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::select_most_relevant_shift_handles_overlapping_shifts":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::schedule_panel_includes_employee_photo_and_role":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::schedule_panel_handles_wiw_api_failure_gracefully":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_succeeds_with_valid_manager_pin_and_permission":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_fails_when_linked_user_lacks_permission":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_falls_back_to_role_when_no_user_linked":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_fails_when_role_insufficient_and_no_user":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_fails_with_invalid_pin":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_fails_with_inactive_employee_pin":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_logs_manager_employee_id_and_reason":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_requires_reason_parameter":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_logs_full_override_details":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_allows_clock_in_for_employee":8,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerSchedulePanelTest::override_allows_clock_out_for_employee":8,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_array_of_kpi_configurations":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_configurations_ordered_by_sortOrder":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_includes_all_expected_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_empty_array_when_table_is_empty":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_only_visible_kpis":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_excludes_hidden_kpis":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_configurations_ordered_by_sortOrder":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_empty_array_when_all_hidden":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_kpi_configuration_for_valid_key":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_null_for_nonexistent_key":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_all_configuration_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_hidden_kpi":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_successfully_updates_multiple_kpis":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_uses_defaults_for_missing_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_skips_entries_without_kpiKey":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_returns_true_on_empty_array":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_is_transactional":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_updates_single_field":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_updates_multiple_allowed_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_ignores_disallowed_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_empty_updates":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_only_disallowed_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_nonexistent_kpi":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_validates_allowed_fields":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_restores_default_kpis":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_clears_all_existing_data":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_creates_kpis_in_correct_order":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_sets_correct_visibility":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_hides_visible_kpi":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_shows_hidden_kpi":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_double_toggle_returns_to_original":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_returns_false_for_nonexistent_kpi":1,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_affects_getVisible_results":1,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_returns_cached_data_when_available":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_cache_hit_skips_database_queries":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_aggregates_from_sources_on_cache_miss":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_calculates_average_transaction_correctly":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_handles_zero_transactions_gracefully":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_caches_result_after_aggregation":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_with_cache_disabled":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_handles_database_error_gracefully":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_includes_year_over_year_comps":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_handles_missing_comp_data":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_calculates_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTodayKPIs_trade_percent_zero_when_no_sales":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDisplayKPIs_method_exists":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDetailedKPIs_returns_expanded_structure":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDetailedKPIs_calculates_sales_variance":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDetailedKPIs_calculates_comp_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_formatKPIValue_formats_currency_values":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_formatKPIValue_formats_percentage_values":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_formatKPIValue_formats_hours":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_formatKPIValue_formats_integer_values":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_formatKPIValue_default_formatting":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getKPIStatus_returns_good_when_goal_met":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getKPIStatus_returns_warning_when_near_goal":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getKPIStatus_returns_danger_when_far_from_goal":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getKPIStatus_returns_neutral_when_no_goal":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTradePercentStatus_returns_good_for_low_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTradePercentStatus_returns_warning_for_moderate_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTradePercentStatus_returns_danger_for_high_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_calculateDerivedKPIs_calculates_trade_percent":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_calculateDerivedKPIs_handles_zero_sales":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getLiveFinancials_returns_data_when_found":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getLiveFinancials_returns_defaults_when_no_data":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTransactionCount_returns_count_from_buyQueue":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getTransactionCount_handles_database_error":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getBuysData_returns_count_and_total":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getBackstockData_returns_count":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getYearOverYearComps_queries_last_year":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDetailedBackstockData_categorizes_actions":8,"Tests\\Unit\\Workbook\\KPIServiceTest::test_getDetailedBuysData_formats_buy_metrics":8,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_creates_comment":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_throws_exception_when_missing_required_fields":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_returns_comments_with_employee_names":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_orders_by_created_at":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_returns_empty_array_when_no_comments":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_delete_removes_comment":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_delete_requires_id":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_fromArray_creates_comment_object":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_toArray_returns_correct_structure":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_filters_by_noteId":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_fromArray_handles_missing_optional_fields":1,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_sets_id_after_insert":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_returns_visible_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_future_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_expired_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_manager_only_when_flag_false":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_orders_pinned_first":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_returns_note_with_author":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_includes_reaction_and_comment_counts":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_includes_user_reaction_status":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_returns_null_when_not_found":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_create_returns_note_id":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_create_returns_null_on_failure":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_includes_author_info":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_returns_paginated_results":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_hasMore_flag_is_true_when_more_results_exist":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_hasMore_flag_is_false_when_no_more_results":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_offset_skips_results":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_excludes_manager_only_when_flag_false":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_includes_manager_only_when_flag_true":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_includes_user_reaction_status":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_orders_pinned_first":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_excludes_deleted_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_returns_count_of_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_excludes_manager_only_when_flag_false":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_includes_manager_only_when_flag_true":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_converts_row_to_note_object":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_handles_null_optional_fields":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_casts_boolean_fields_correctly":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_casts_integer_fields_correctly":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_counts_by_type":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_zero_for_no_reactions":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_defaults_for_nonexistent_note":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_returns_counts_for_multiple_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_returns_empty_for_empty_array":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_initializes_defaults_for_notes_without_reactions":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_returns_employee_names_by_type":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_returns_empty_arrays_for_no_reactions":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_includes_employee_id":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_returns_details_for_multiple_notes":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_returns_empty_for_empty_array":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_initializes_defaults_for_notes_without_reactions":1,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_handles_multiple_reactions_per_type":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_add_creates_reaction":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_add_ignores_duplicate":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_remove_deletes_reaction":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_remove_returns_true_when_reaction_does_not_exist":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getCount_returns_correct_count":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getCount_returns_zero_when_no_reactions":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_returns_true_when_reacted":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_returns_false_when_not_reacted":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_is_user_specific":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_returns_employees_with_reaction_info":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_returns_empty_array_when_no_reactions":1,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_orders_by_created_at_desc":1,"Tests\\Unit\\Workbook\\NoteTest::test_save_creates_new_note":1,"Tests\\Unit\\Workbook\\NoteTest::test_save_updates_existing_note":1,"Tests\\Unit\\Workbook\\NoteTest::test_delete_removes_note_and_related_data":1,"Tests\\Unit\\Workbook\\NoteTest::test_toArray_returns_all_fields":1,"Tests\\Unit\\Workbook\\NoteTest::test_fromArray_hydrates_note":1,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_authorEmployeeId":1,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_content":1,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_startDate":1,"Tests\\Unit\\Workbook\\NoteTest::test_delete_requires_id":1,"Tests\\Unit\\Workbook\\NoteTest::test_fromArray_sets_defaults_for_optional_fields":1,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getAll_returns_all_kpis":1,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getVisible_returns_only_visible_kpis":1,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getByKey_returns_kpi_for_valid_key":1,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getByKey_returns_null_for_invalid_key":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_null_when_no_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_person_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_position_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_correct_date":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_creates_new_person_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_creates_new_position_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_updates_existing_override_on_same_target_and_date":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_with_shiftId":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_sets_id_on_update_path":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_switches_assignment_type_nulls_other_column":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByDate_returns_all_overrides_for_date":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByDate_returns_empty_when_no_overrides":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByShiftId_returns_overrides_linked_to_shift":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByShiftId_returns_empty_for_unknown_shift":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_removes_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_does_not_affect_other_dates":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_does_not_affect_other_targets":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_noop_when_no_override":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByShiftId_removes_all_overrides_for_shift":1,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByShiftId_does_not_affect_other_shifts":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_empty_when_no_assignments":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_task_assignments_sorted_by_sortOrder":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_group_assignments":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_does_not_return_other_targets":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_grouped_by_targetId":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_empty_for_no_ids":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_empty_for_unassigned_targets":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_creates_new_assignments":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_replaces_existing_assignments_atomically":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_with_empty_array_clears_all_assignments":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_does_not_affect_other_targets":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_removes_all_assignments_for_target":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_does_not_affect_other_targets":1,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_noop_when_no_assignments":1,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsWheniworkWhenExplicitlySet":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsHomebaseWhenExplicitlySet":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderFallsBackToWheniworkWhenNoExplicitSetting":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderFallsBackToHomebaseWhenWheniworkDisabled":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsNullWhenNoProviderEnabled":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetTodayScheduleReturnsScheduleForCurrentDate":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetTodayScheduleReturnsEmptyWhenNoProvider":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsSuccessfulSchedule":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsCorrectResponseStructure":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsDisabledWhenNoProvider":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateHandlesExceptionGracefully":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsSuccessMessage":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsErrorWhenNoProvider":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsErrorWhenSyncFails":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleHandlesExceptionGracefully":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusAddsIsClockedInFlag":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusHandlesEmptyShifts":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusHandlesErrorGracefully":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetClockedInEmployeeIdsQueriesBuyerkioskProvider":8,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetClockedInEmployeeIdsHandlesWheniworkProvider":8,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_getGroupAssignments_returns_groups_with_effective_assignments":2,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_getAvailableTasksForShift_returns_position_matching_first":2,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_separates_qualified_from_others":2,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_excludes_disabled_users":2,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_sorted_by_firstName":2,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_new_assignment":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_assignment_with_null_employee":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_assignment_with_minimal_fields":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_throws_exception_when_taskId_missing":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_removes_assignment":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_returns_false_when_id_missing":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_returns_true_for_nonexistent_id":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_returns_assignments":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_returns_empty_array_when_no_assignments":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_orders_by_dueDate_and_dueTime":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_includes_null_employee_assignments":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_assignments_without_date_filter":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_assignments_with_date_filter":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_null_date_assignments_when_date_filter_applied":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_assignments_to_all_employees":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_empty_array_when_no_assignments":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_task_info":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_creates_assignment_object_with_all_fields":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_handles_null_values":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_handles_missing_optional_fields":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_casts_types_correctly":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_returns_correct_structure":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_includes_null_values":1,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_and_fromArray_roundtrip":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_save_creates_comment":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_save_throws_exception_when_missing_required_fields":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_returns_empty_array_when_no_comments":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_returns_comments_with_employee_names":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_filters_by_date":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTask_returns_comments_across_all_dates":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTask_respects_limit":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_delete_removes_comment":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_fromArray_creates_comment_object":1,"Tests\\Unit\\Workbook\\TaskCommentTest::test_toArray_returns_correct_structure":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_persists_all_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_persists_out_of_position_level2_with_reason":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_upsert_updates_audit_fields_on_duplicate":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_allows_null_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_getForTaskAndDate_hydrates_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_getForTaskAndDate_null_audit_fields_when_not_set":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_fromArray_includes_all_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_toArray_includes_all_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_fromArray_toArray_roundtrip_with_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_backward_compatibility_save_without_audit_fields":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_save_creates_new_completion":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_save_updates_existing_completion":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_completedAt_set_when_status_is_2":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_completedAt_null_when_status_not_2":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_getForTaskAndDate_returns_null_when_not_exists":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_getForTaskAndDate_returns_completion_when_exists":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_fromArray_creates_completion_object":1,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_toArray_returns_correct_structure":1,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_zero_for_empty_list":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_100_when_all_complete":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_50_for_half_complete":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_rounds_correctly":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_ignores_null_status":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_only_counts_status_2_as_complete":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_returns_id_on_success":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_throws_exception_when_groupId_missing":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_uses_defaults_for_optional_fields":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_invalidates_cache":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_entries_for_day":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_empty_array_when_no_schedule":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_grouped_by_listId":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_empty_array_when_no_schedules":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_returns_true_on_success":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_with_inactive_flag":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_invalidates_cache":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_processes_multiple_days":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_handles_complex_config":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_uses_default_time_when_not_specified":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_returns_true_on_success":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_invalidates_cache":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_deletes_expected_keys":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_handles_wildcard_pattern":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_handles_empty_wildcard_results":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_empty_on_pdo_exception":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_empty_on_pdo_exception":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_returns_false_on_pdo_exception":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_returns_false_on_pdo_exception":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_throws_on_pdo_exception":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_returns_lists_scheduled_for_today":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_includes_task_counts":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_returns_empty_array_on_error":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_returns_current_list":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_includes_carryover_from_previous_lists":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_returns_null_when_no_lists_scheduled_today":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTasksForList_filters_by_time_when_requested":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTasksForList_returns_all_tasks_when_filter_disabled":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getAllTasksForList_calls_getTasksForList_with_false":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_updates_rack_name_from_current_db":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_skips_non_floor_plan_tasks":8,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_handles_remove_task_with_backstock":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_isEnabled_returns_true_when_wiw_enabled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_isEnabled_returns_false_when_wiw_disabled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getProviderName_returns_wheniwork":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getScheduleForDate_returns_cached_data_when_available":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getScheduleForDate_returns_empty_array_when_disabled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getScheduleForDate_returns_empty_array_on_api_exception":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getEmployeeShift_returns_shift_when_employee_scheduled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getEmployeeShift_returns_null_when_employee_not_scheduled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getEmployeeShift_returns_null_when_schedule_empty":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_syncScheduleToCache_returns_false_when_disabled":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_syncScheduleToCache_clears_existing_db_cache":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_cache_key_includes_provider_name":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_cache_saves_schedule_data_after_fetch":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_formatDateTime_parses_wheniwork_format":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_formatDateTime_handles_invalid_format_gracefully":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_formatTimeOnly_formats_to_12_hour_time":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_formatTimeOnly_handles_morning_time":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_formatTimeOnly_returns_empty_string_on_invalid_format":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getLocalEmployee_queries_by_external_id_first":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getLocalEmployee_falls_back_to_legacy_employeeID":8,"Tests\\Unit\\Workbook\\WhenIWorkScheduleTest::test_getLocalEmployee_returns_null_when_not_found":8,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getTodayCanvas_returns_null_when_no_canvas_exists":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getTodayCanvas_returns_canvas_data_when_exists":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_creates_new_record":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_updates_existing_record":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_resets_to_empty":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_returns_non_expired_items":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_excludes_expired_items":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_creates_sticky_note":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_with_custom_properties":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_changes_specified_fields":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_does_not_change_other_fields":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_removes_item":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_removes_expired_items":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_returns_todays_history":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_creates_history_entry":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withInvalidJson_returnsFalse":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withNullEmployee_savesWithoutLogging":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withThumbnail_savesThumbnailData":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_logsActionWhenEmployeeProvided":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_logsActionBeforeClearing":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_withNullEmployee_clearsWithoutLogging":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_returnsEmptyArrayOnError":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_includesCreatorInformation":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_orderedByZIndexAndCreatedAt":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_usesDefaultValuesForOptionalFields":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_returnsNullOnFailure":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_logsActionWhenEmployeeProvided":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItem_returnsNullForNonExistentItem":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItem_includesCreatorInformation":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_ignoresNonWhitelistedFields":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_returnsFalseWhenNoValidFields":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_updatesUpdatedAtTimestamp":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_returnsFalseForNonExistentItem":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_returnsFalseForNonExistentItem":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_logsActionBeforeDeleting":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_withNullEmployee_deletesWithoutLogging":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_returnsCountOfDeletedItems":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_doesNotDeleteNonExpiredItems":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_withNullData_logsSuccessfully":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_doesNotThrowOnLoggingFailure":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_defaultsToTodayWhenNoDateProvided":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_filtersToSpecificDate":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_includesEmployeeNames":1,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_orderedByCreatedAtDesc":1},"times":{"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftRejectsInvalidPositionId":0.003,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftAcceptsValidPositionId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftAcceptsNullPositionId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftOpenShiftAllowsAnyPositionId":0.023,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftRejectsInvalidPositionId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftAcceptsValidPositionId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftValidatesPositionAgainstNewEmployee":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftToOpenShiftPreservesPositionId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftRejectsInactivePosition":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftCreatesOpenShiftWhenEmployeeIdMissing":0.003,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftReturns403WhenUserLacksWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftCreatesOpenShiftWhenEmployeeIdExplicitlyNull":0.004,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftReturns400WhenShiftStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftReturns400WhenShiftEndMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateShiftReturns400WhenRequestBodyEmpty":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftReturns403WhenUserLacksWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftReturns400WhenRequestBodyEmpty":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateShiftReturns404WhenShiftNotFound":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testDeleteShiftReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testDeleteShiftReturns403WhenUserLacksWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testDeleteShiftReturns404WhenShiftNotFound":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testDeleteShiftReturnsSuccessWhenShiftDeleted":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsReturnsMultiplePositions":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsReturnsEmptyForNoPositions":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsRequiresPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsRequiresAuthentication":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsReturnsOnlyActive":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeePositionsReturnsSortedBySortOrder":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesPositionInfo":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTasks":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTaskSummary":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentNoPosition":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentUnscheduled":0,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentGracefulDegradationOnTaskError":0.001,"Tests\\Unit\\Workbook\\Controllers\\TimePunchControllerClockInEnrichmentTest::testBuildShiftEnrichmentIncludesTimeRange":0,"Tests\\Unit\\AccessConditionExpressionTest::testConstructor":0.012,"Tests\\Unit\\AccessConditionExpressionTest::testEvaluateConditionAlways":0.004,"Tests\\Unit\\AccessConditionExpressionTest::testEvaluateConditionEquals":0.001,"Tests\\Unit\\AccessConditionExpressionTest::testEvaluateConditionWithParams":0,"Tests\\Unit\\AccessConditionExpressionTest::testEvaluateConditionWithInvalidSyntax":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::getName_returnsCorrectJobName":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::getDisplayName_returnsDescriptiveName":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::getQueue_returnsLowPriorityQueue":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::getScope_returnsPerStoreScope":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::getTimeout_returnsTenMinuteTimeout":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::job_processesCorrectNumberOfCohortMonths":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::job_doesNotHaveUnusedRetentionMonthsConstant":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Jobs\\RetentionAggregationJobTest::handle_failsWithoutTypeNum":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::fetchCategoryData_returnsValidMACDStructure":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::fetchCategoryData_filtersByStoreAndCategory":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::fetchHeatmapData_returnsAllCategoriesWithSignals":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::fetchHeatmapData_returnsLatestDataPerCategory":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::fetchCrossoverEvents_returnsBullishAndBearishEvents":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::saveMomentumData_upsertsData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\MomentumRepositoryTest::getInsufficientDataCategories_identifiesCategoriesWithLessThan35Days":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchCohorts_returnsSellerCohortData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchCohorts_filtersByDateRange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchOverview_returnsNewVsReturningRatio":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchVisitFrequencyDistribution_returnsBucketedDistribution":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::saveCohort_upsertsData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchRetentionTrend_returnsRetentionOverMonths":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchCohorts_handlesEmptyDataGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\RetentionRepositoryTest::fetchOverview_returnsZerosForNoData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\StoreComparisonRepositoryTest::fetchAllStoreMetrics_returnsCorrectStructure":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\StoreComparisonRepositoryTest::fetchAllStoreMetrics_handlesEmptyResult":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\StoreComparisonRepositoryTest::fetchStoreMetricsByConcept_filtersCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\StoreComparisonRepositoryTest::fetchConceptSummary_returnsGroupedMetrics":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\StoreComparisonRepositoryTest::getAvailableMetrics_returnsAllSupportedMetrics":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchDistribution_returnsCorrectBucketStructure":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchDistribution_handlesEmptyDateRangeGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchDistribution_filtersbyDateRange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchTrend_returnsDailyTrendData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchTrend_respectsDaysParameter":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::fetchComparison_returnsBothPeriods":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::saveDistribution_upsertsData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Repositories\\VelocityRepositoryTest::saveDailySummary_upsertsData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_returnsPositiveForIncrease":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_returnsNegativeForDecrease":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesFromZero":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesToZero":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_returnsZeroForNoChange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesZeroToZero":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_roundsToTwoDecimals":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesNegativeToPositive":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesLargeNumbers":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_handlesSmallNumbers":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"double\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"halve\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"triple\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"quarter\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"unchanged\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::calculatePercentChange_withDataProvider with data set \"small_increase\"":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::comparePeriodData_returnsAllMetrics":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::comparePeriodData_calculatesCorrectChanges":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::comparePeriodData_handlesEmptyPeriods":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::comparePeriodData_handlesPartialData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::comparePeriodData_handlesDecline":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::compareBucketDistributions_returnsBucketComparison":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::compareBucketDistributions_calculatesChangesPerBucket":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::compareBucketDistributions_handlesMissingBuckets":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::compareBucketDistributions_handlesNewBucketsInPeriodB":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::compareBucketDistributions_handlesVelocityBucketKey":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_returnsUpForPositiveChange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_returnsDownForNegativeChange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_returnsFlatForSmallChange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_respectsInvertedDirection":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_handlesInvertedPositive":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::getTrendDirection_flatUnaffectedByInversion":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_formatsCurrency":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_formatsPercent":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_formatsDays":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_formatsDefaultNumber":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_handlesZero":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\ComparisonServiceTest::formatChange_handlesLargeNumbers":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::constructor_acceptsValidTypeNum":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::constructor_rejectsInvalidTypeNumFormat":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_returnsCorrectStructure":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_calculatesReturnRateCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_calculatesBuysToSalesRatioCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_handlesZeroSalesGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_returnsCurrentAndPriorPeriodData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_calculatesVarianceCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_highlightsPositiveVariance":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_highlightsNegativeVariance":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_handlesMissingPriorYearData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getReturnRateTrend_returnsMonthlyTrendData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getReturnRateTrend_includesMovingAverage":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getBuysToSalesTrend_returnsDailyTrendData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getBuysToSalesTrend_calculatesSummaryStats":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_calculatesGrossMarginRateCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_returnsCachedDataOnHit":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_cachesMissedData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::service_operatesWithoutRedis":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getPLSummary_handlesNegativeMargin":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\FinancialServiceTest::getYoYComparison_calculatesCorrectPriorYearDates":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateEMAWithKnownValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateEMAFirstValueIsSMA":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateEMAWithInsufficientData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateEMAWithExactPeriodData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateEMAWithEmptyArray":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithKnownInputs":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDReturnsErrorForInsufficientData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithCustomPeriods":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDOutputStructure":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDSortsDataByDateOldestFirst":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithTrendingUpwardData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversBullish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversBearish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversNone":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversWithMultipleCrossovers":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversSkipsNullSignalLines":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversAtExactEquality":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendStrongBullish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendBullish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendNeutral":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendBearish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendStrongBearish":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendInsufficientData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::interpretTrendBoundaryConditions":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getRecommendationForSignals":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getRecommendationForUnknownSignal":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getRecommendationDescriptionReturnsHumanReadable":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::validatePeriodsWithValidValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::validatePeriodsWithInvalidRanges":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::validatePeriodsWhenFastNotLessThanSlow":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getMinimumDataPointsCalculatesCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getMultipliersReturnsCorrectValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::getMultipliersWithCustomPeriods":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::createMomentumSignalFromMACDResult":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::createMomentumSignalWithCrossoverEvent":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::fullMACDCalculationProducesValidResults":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::macdWithConstantValuesProducesZeroMACDLine":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithExactMinimumData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithZeroValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::calculateMACDWithLargeValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversWithEmptyArray":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\MomentumServiceTest::detectCrossoversWithSingleEntry":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGetAnalysisReturnsEmptyDataWhenNoSales":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGetAnalysisReturnsCompleteData":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testIdentifiesSweetSpotsCorrectly":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testSweetSpotsAreSortedByScore":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testNoSweetSpotsWhenAllBandsAreSlow":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testPriceBandsIncludePerformanceLabels":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGeneratesLimitedDataRecommendation":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGeneratesSlowVelocityRecommendation":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGeneratesFastVelocityRecommendation":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGetScatterDataPassesThroughFilters":0,"Tests\\Unit\\Analytics\\Services\\PricingServiceTest::testGetPriceByVelocityReturnsData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_returnsCorrectStructure":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_calculatesNewVsReturningRatio":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_handlesZeroReturningGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_handlesEmptyDataGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getCohorts_returnsStructuredCohortData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getCohorts_transformsRetentionToArray":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getCohorts_handlesEmptyDataGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getVisitFrequency_returnsBucketedDistribution":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getVisitFrequency_calculatesPercentages":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getVisitFrequency_handlesZeroSellersGracefully":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_usesCacheWhenAvailable":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getOverview_setsCorrectCacheTTL":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::service_worksWithoutRedis":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getCohorts_usesDifferentCacheKeyThanOverview":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getRetentionTrend_returnsFormattedTrendData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::getRetentionTrend_calculatesAverageRetention":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\RetentionServiceTest::invalidateCache_clearsAllRetentionCacheKeys":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::rankStores_byTotalRevenue_sortsDescending":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::rankStores_byWaitMinutes_sortsAscending":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::rankStores_addsRankField":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::rankStores_handlesNullValues":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::calculateQuartiles_identifiesTopQuartile":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::calculateQuartiles_handlesSmallDatasets":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::calculateVarianceFromAverage_computesCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::calculateVarianceFromAverage_addsVarianceFields":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::calculateVarianceFromAverage_setsComparisonLabel":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::getStoreRanking_returnsCompleteData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::getStoreRanking_filtersByConcept":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::getSupportedMetrics_returnsMetricDefinitions":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\StoreComparisonServiceTest::getConceptComparison_returnsSummaryByConcept":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_returnsCorrectBucketStructure":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_calculatesMarginErosion":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_handlesEmptyDateRange":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_usesCaching":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_calculatesSummaryMetrics":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_calculatesPercentOfTotal":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_returnsCorrectDays":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_limitsMaxDays":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_enforcesMinimumDays":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_handlesEmptyData":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getTrend_usesCaching":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::comparePeriods_returnsComparison":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::comparePeriods_calculatesChanges":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::comparePeriods_usesCaching":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getHealthScore_returnsScoreAndGrade":0.001,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::clearCache_removesAllCachedDataForStore":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::clearCache_returnsFalseWhenCacheDisabled":0,"BuyerKiosk\\Tests\\Unit\\Analytics\\Services\\VelocityServiceTest::getDistribution_worksWithoutCache":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testConstructorRejectsInvalidTypeNum":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testConstructorRejectsTypeNumWithSpecialChars":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testConstructorAcceptsValidTypeNum":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetHeatmapReturnsFormattedData":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetHeatmapCalculatesSummaryStats":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetHeatmapHandlesEmptyData":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetNpsCorrelationCalculatesCoefficient":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetNpsCorrelationHandlesInsufficientData":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetNpsCorrelationIncludesBucketAnalysis":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetStaffingRecommendationsReturnsPeakHours":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetStaffingRecommendationsGeneratesAdvice":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetStaffingRecommendationsCalculatesSummary":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetStaffingRecommendationsHandlesEmptyData":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetDailyTrendReturnsData":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testGetDailyTrendDetectsTrendDirection":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testCorrelationInterpretationForStrongNegative":0,"Tests\\Unit\\Analytics\\WaitTimeServiceTest::testDayOfWeekLabelsAreCorrect":0,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsSha1For65CharacterPassword":0,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsModernForBcryptHash":0.238,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsModernForArgon2Hash":0.158,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsModernForShortHash":0,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsModernForLongHash":0,"Tests\\Unit\\Auth\\AuthenticationTest::testGetPasswordHashTypeReturnsModernForEmptyString":0,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordReturnsBcryptHash":0.236,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordReturnsVerifiableHash":0.473,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordReturnsDifferentHashForSamePassword":0.945,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordWorksWithEmptyPassword":0.472,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordWorksWithSpecialCharacters":0.471,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordWorksWithUnicodeCharacters":0.476,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordWorksWithLongPassword":0.479,"Tests\\Unit\\Auth\\AuthenticationTest::testHashPasswordReturnsCorrectLength":0.236,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_missing_credentials_returns_400":0.023,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_missing_username_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_missing_password_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_mfa_required_returns_mfa_response":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_success_returns_tokens":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_success_returns_user_data":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_success_returns_stores":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_success_clears_rate_limit":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_invalid_credentials_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_failure_records_rate_limit":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_account_locked_returns_403":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_auth_service_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_passes_device_info":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_passes_mfa_code":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_logout_no_auth_context_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_logout_empty_user_id_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_logout_success_returns_success":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_logout_all_devices_returns_success":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_refresh_missing_token_returns_400":0,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_refresh_invalid_token_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_refresh_valid_token_returns_new_tokens":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getSessions_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getSessions_returns_session_list":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_revokeSession_no_auth_returns_401":0,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_revokeSession_success":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_revokeSession_not_found_returns_404":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getActivity_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getActivity_returns_events":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getMfaStatus_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getMfaStatus_returns_status":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_getMfaStatus_exception_returns_500":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_setupMfa_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_setupMfa_returns_qr_data":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_setupMfa_already_enabled_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_enableMfa_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_enableMfa_no_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_enableMfa_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_enableMfa_valid_code_returns_success":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_enableMfa_invalid_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_disableMfa_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_disableMfa_no_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_disableMfa_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_disableMfa_valid_code_returns_success":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_disableMfa_invalid_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_verifyMfa_missing_params_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_verifyMfa_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_verifyMfa_invalid_code_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_regenerateBackupCodes_no_auth_returns_401":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_regenerateBackupCodes_no_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_regenerateBackupCodes_rate_limited_returns_429":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_regenerateBackupCodes_success_returns_codes":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_regenerateBackupCodes_invalid_code_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_empty_body_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_login_malformed_json_returns_400":0.001,"Tests\\Unit\\Auth\\Controllers\\AuthControllerTest::test_response_sets_json_content_type":0.001,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckGeneratesTokenOnFirstGetRequest":0.001,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckReusesExistingTokenOnSubsequentRequests":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckAppendsTokenToViewData":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckAppendsCustomKeyToViewData":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckValidatesTokenOnPostRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckRejectsInvalidTokenOnPostRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckRejectsMissingTokenOnPostRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckValidatesTokenOnPutRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckValidatesTokenOnDeleteRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckSkipsValidationOnGetRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckSkipsValidationOnHeadRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckSkipsValidationOnOptionsRequest":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckValidatesCustomKeyToken":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckRejectsWrongKeyToken":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckRequiresActiveSession":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckGeneratesSecureToken":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckGeneratesUniqueTokensAcrossSessions":0.001,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCallRegistersHookAndCallsNext":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckHandlesEmptyPostToken":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckHandlesNullPostToken":0,"Tests\\Unit\\Auth\\CsrfGuardCheckTest::testCheckHandlesWhitespaceToken":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithDefaultKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithValidAlphanumericKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithValidKeyContainingHyphen":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithValidKeyContainingUnderscore":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithValidKeyContainingMixedCharacters":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithSingleCharacterKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithLongKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorWithUppercaseKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForEmptyKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithSpaces":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithSpecialCharacters":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithAtSymbol":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithDot":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithSlash":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithColon":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithParentheses":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithBrackets":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithPlusSign":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithAmpersand":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithEqualsSign":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithQuestionMark":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithPercent":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorThrowsExceptionForKeyWithAsterisk":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsNumericOnlyKey":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsKeyStartingWithNumber":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsKeyStartingWithUnderscore":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsKeyStartingWithHyphen":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsKeyWithMultipleHyphens":0,"Tests\\Unit\\Auth\\CsrfGuardTest::testConstructorAcceptsKeyWithMultipleUnderscores":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAuthLoginRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAuthRefreshRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForPublicPrefixedRoutes":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAccountLoginRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAccountRegisterRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForMobileAuthRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForCustomPublicRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForSubpathOfPublicRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallAuthenticatesWithValidJwtToken":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallRejectsInvalidJwtToken":0.001,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallRejectsExpiredJwtToken":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSetsEnvironmentVariablesOnJwtAuth":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesJwtWithMissingOptionalFields":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallDetectsApiKeyAuthorizationHeader":0.008,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallDetectsXApiKeyHeader":0.001,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallPrefersXApiKeyOverMissingAuthorizationHeader":0.005,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallAuthenticatesWithValidSession":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallRejectsNoSessionWhenNotActive":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallRejectsEmptySessionUserId":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSessionAuthSetsEnvironmentVariables":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallReturns401WhenNoAuthProvided":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSetsWWWAuthenticateHeaderOnUnauthorized":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallReturnsJsonErrorOnUnauthorized":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSetsContentTypeJsonOnUnauthorized":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallDoesNotCallNextOnUnauthorized":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallPrioritizesJwtOverApiKey":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallPrioritizesApiKeyOverSession":0.004,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesMalformedBearerToken":0.001,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesEmptyAuthorizationHeader":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesUnrecognizedAuthScheme":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesWhitespaceOnlyAuthorizationHeader":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallHandlesProtectedRouteWithDifferentMethods":0.001,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForForgotPasswordRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAccountActivateRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallSkipsAuthForAccountCaptchaRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallJwtSetsUserInfo":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallWithSessionButGuestUser":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareCallTest::testCallAccountResendActivationRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testConstructorWithoutTokenService":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testConstructorWithTokenService":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testConstructorWithNullTokenService":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testDefaultPublicRoutesAreSet":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testAddPublicRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testAddMultiplePublicRoutes":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForAuthLogin":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForAuthLoginWithTrailingPath":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForPublicPrefixedPath":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsFalseForProtectedRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsFalseForAdminRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsFalseForRoot":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForAccountRegister":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForMobileAuth":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testIsPublicRouteReturnsTrueForAddedCustomRoute":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithReturnsTrueForMatchingPrefix":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithReturnsFalseForNonMatchingPrefix":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithReturnsTrueForEmptyNeedle":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithReturnsTrueForExactMatch":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithReturnsFalseWhenNeedleLongerThanHaystack":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithIsCaseSensitive":0,"Tests\\Unit\\Auth\\Middleware\\DualAuthMiddlewareTest::testStartsWithWorksWithApiKeyPrefix":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_constructor_with_empty_properties":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_constructor_hydrates_all_properties":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_constructor_casts_types":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_constructor_casts_is_active_to_bool":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_find_returns_assignment_when_found":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_find_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByUserAndStore_returns_assignment_when_found":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByUserAndStore_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByUser_returns_all_assignments":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByUser_activeOnly_filters_inactive":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByUser_returns_empty_array_when_none":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByStore_returns_assignments_for_store":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByStore_defaults_to_active_only":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findByStore_activeOnly_false_returns_all":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findActiveUserIdsByStore_returns_user_ids":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_findActiveUserIdsByStore_returns_empty_when_none":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_create_returns_existing_assignment":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_create_inserts_new_assignment":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_create_does_not_update_when_flag_false":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_create_reactivates_inactive_assignment":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_upsert_delegates_to_create":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_save_inserts_new_record":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_save_updates_existing_record":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_deactivate_sets_inactive_and_saves":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_reactivate_sets_active_and_clears_timestamp":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_delete_removes_record":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_delete_returns_false_when_no_id":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_toArray_returns_all_properties":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_setClockPin_updates_and_returns_self":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_setDrsEmployeeId_updates_and_returns_self":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_setRole_updates_and_returns_self":0,"Tests\\Unit\\Auth\\Models\\StoreAssignmentTest::test_setters_support_method_chaining":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_constructor_creates_empty_user_with_defaults":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_populates_all_properties_from_array":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_casts_boolean_properties_correctly":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_handles_null_values_gracefully":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_decodes_json_mfa_backup_codes":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_preserves_array_mfa_backup_codes":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hydrate_casts_integer_properties":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_find_returns_user_by_id":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_find_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByUsername_returns_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByUsername_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByEmail_returns_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByEmail_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByExternalId_returns_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_findByExternalId_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setPassword_hashes_with_argon2id":0.064,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getPasswordHash_returns_stored_hash":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setPassword_hash_meets_argon2id_spec":0.031,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setPassword_produces_different_hashes_for_different_passwords":0.062,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setPassword_produces_different_hashes_for_same_password":0.062,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getStoreAssignments_returns_cached_assignments":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getStoreAssignments_returns_empty_for_new_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hasStoreAccess_returns_true_for_assigned_store":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hasStoreAccess_returns_false_for_unassigned_store":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_hasStoreAccess_returns_true_for_all_stores_permission":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getStoreTypeNums_returns_array_of_typenum_strings":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getGroups_returns_cached_groups":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getGroups_returns_empty_for_new_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getStoreGroups_filters_to_typenum_pattern":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getPermissions_merges_group_and_user_permissions":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getPermissionHooks_returns_hook_names_array":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_checkAccess_returns_true_for_system_account_type":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_checkAccess_returns_true_when_permission_exists":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_checkAccess_returns_false_when_permission_missing":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isGuest_returns_true_when_id_is_null":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isGuest_returns_false_when_id_is_set":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isLocked_returns_true_when_lockedUntil_is_future":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isLocked_returns_false_when_lockedUntil_is_past":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isLocked_returns_false_when_lockedUntil_is_null":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_canAuthenticate_returns_true_when_all_conditions_met":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_canAuthenticate_returns_false_when_canLogin_is_false":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_canAuthenticate_returns_false_when_enabled_is_false":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_canAuthenticate_returns_false_when_active_is_false":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_canAuthenticate_returns_false_when_locked":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isOnLeave_returns_true_when_on_leave":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isOnLeave_returns_false_when_leave_not_started":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isOnLeave_returns_false_when_leave_ended":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isOnLeave_returns_false_when_no_leave_dates":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isOnLeave_returns_true_for_indefinite_leave":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isTerminated_returns_true_when_terminated":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isTerminated_returns_true_when_termination_is_today":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isTerminated_returns_false_when_termination_in_future":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_isTerminated_returns_false_when_no_termination_date":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_clearCache_resets_lazy_loaded_relations":0.001,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getFullName_combines_first_and_last_name":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getFullName_handles_null_first_name":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getFullName_handles_null_last_name":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getFullName_handles_both_names_null":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getDisplayNameOrUsername_returns_displayName":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getDisplayNameOrUsername_falls_back_to_username":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getDisplayNameOrUsername_returns_unknown_when_both_null":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_toArray_returns_public_properties":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_toArray_with_include_private_returns_all_properties":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_getters_return_correct_values":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setters_update_properties_correctly":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_setters_can_set_null_values":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_save_calls_insert_for_new_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_save_calls_update_for_existing_user":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_insert_executes_insert_query_and_sets_id":0,"Tests\\Unit\\Auth\\Models\\UnifiedUserTest::test_update_executes_update_query_with_id":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_constructor_accepts_pdo_connection":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_accepts_valid_event_types":0.001,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_rejects_invalid_event_type":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_stores_correct_data":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_handles_null_user_id":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_stores_empty_details_as_null":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_log_returns_false_on_database_error":0.001,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logLogin_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logLogin_uses_default_method":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logLoginFailed_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logLoginFailed_works_without_username":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logLogout_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logPasswordChange_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logPasswordResetRequest_masks_email":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logPasswordResetComplete_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logMfaEnabled_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logMfaDisabled_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logMfaSuccess_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logMfaFailed_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logTokenIssued_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logTokenRefreshed_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logTokenRevoked_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logAccountLocked_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logAccountUnlocked_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logRememberMeIssued_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logRememberMeUsed_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logRememberMeRevoked_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_logPasswordHashUpgraded_creates_correct_event":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getRecentEvents_returns_events_for_user":0.001,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getRecentEvents_parses_json_details":0.001,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getRecentEvents_handles_null_details":0.001,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getRecentEvents_returns_empty_array_when_no_events":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getClientIp_returns_remote_addr":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getClientIp_prefers_forwarded_for":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getClientIp_uses_real_ip":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getUserAgent_returns_user_agent":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_getUserAgent_truncates_long_user_agent":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_maskEmail_correctly_masks_email":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_maskEmail_handles_invalid_email":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_maskEmail_handles_empty_string":0,"Tests\\Unit\\Auth\\Services\\AuditLoggerTest::test_maskEmail_handles_multiple_at_symbols":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_returns_tokens":0.064,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_returns_user_data":0.064,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_returns_stores":0.063,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_clears_rate_limit":0.063,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_resets_failed_attempts":0.064,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_success_logs_audit_events":0.068,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_user_not_found_returns_failed":0.001,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_canLogin_false_returns_failed":0.031,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_account_disabled_returns_failed":0.031,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_account_not_activated_returns_failed":0.031,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_account_locked_returns_locked_with_retry_after":0.031,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_invalid_password_returns_failed":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_invalid_password_records_failed_attempt":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_rate_limited_returns_rate_limited":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_rate_limited_includes_retry_after":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_locks_account_after_5_failed_attempts":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_lockout_duration_is_15_minutes":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_verifyPassword_argon2id_hash_verifies_correctly":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_verifyPassword_bcrypt_hash_verifies_and_triggers_upgrade":0.541,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_verifyPassword_sha1_hash_verifies_and_triggers_upgrade":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_verifyPassword_invalid_password_returns_false":0.066,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_mfa_enabled_no_code_returns_mfa_required":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_mfa_enabled_invalid_code_returns_failed":0.068,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_mfa_rate_limiting_applies":0.062,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_mfa_backup_code_verification_works":0.064,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_logout_revokes_specific_refresh_token":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_logout_all_devices_revokes_all_user_tokens":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_logout_logs_logout_event":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_refreshToken_valid_returns_new_tokens":0.033,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_refreshToken_invalid_returns_failed":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_refreshToken_user_disabled_returns_failed":0.032,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_refreshToken_rotates_refresh_token":0.032,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_hashPassword_returns_argon2id_hash":0.032,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_hashPassword_uses_correct_argon2id_parameters":0.031,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_success_has_correct_properties":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_failed_has_error_message":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_mfaRequired_has_userId":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_rateLimited_has_retryAfter":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_locked_has_retryAfter":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_toArray_returns_correct_structure_for_success":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_toArray_returns_correct_structure_for_failure":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_toArray_returns_correct_structure_for_mfaRequired":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_toArray_returns_correct_structure_for_rateLimited":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_AuthResult_toArray_returns_correct_structure_for_locked":0,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_with_email_works":0.063,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_normalizes_username_for_rate_limiting":0.064,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_expired_lockout_allows_login":0.066,"Tests\\Unit\\Auth\\Services\\AuthServiceTest::test_login_passes_device_info_to_token_creation":0.078,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_constructor_sets_all_properties":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_constructor_handles_null_user":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_wasMatched_returns_true_when_user_set":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_wasMatched_returns_false_when_user_null":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_getUserId_returns_id_when_matched":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_getUserId_returns_null_when_not_matched":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_isHighConfidence_returns_true_for_90_plus":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_isHighConfidence_returns_false_for_below_90":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_toArray_returns_correct_structure_when_matched":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_toArray_returns_correct_structure_when_not_matched":0,"BuyerKiosk\\Tests\\Unit\\Auth\\Services\\MatchResultTest::test_getters_return_correct_values":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateSecretReturnsBase32EncodedString":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateSecretIsCryptographicallyRandom":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateSecretHasCorrectLengthForTotp":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetQrCodeUriReturnsOtpauthUri":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetQrCodeUriIncludesCorrectIssuer":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetQrCodeUriIncludesUserLabel":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetQrCodeUriUsesStandardTotpParameters":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeReturnsTrueForValidCurrentCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeAllowsTimeDrift":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeReturnsFalseForInvalidCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeReturnsFalseForExpiredCode":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeNormalizesInputRemovesSpaces":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyCodeRejectsNonSixDigitCodes":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateBackupCodesReturnsTenCodesByDefault":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBackupCodesAreFormattedCorrectly":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBackupCodesAreStoredAsSha256Hashes":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyBackupCodeReturnsTrueAndConsumesValidCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyBackupCodeReturnsFalseForInvalidCode":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyBackupCodeReturnsFalseForAlreadyUsedCode":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetRemainingBackupCodeCountReturnsCorrectCount":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetRemainingBackupCodeCountReturnsZeroWhenNoCodes":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBeginSetupGeneratesSecretAndBackupCodes":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBeginSetupStoresSecretWithMfaDisabled":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBeginSetupThrowsIfMfaAlreadyEnabled":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testCompleteSetupEnablesMfaOnValidCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testCompleteSetupReturnsFalseOnInvalidCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testCompleteSetupThrowsIfSetupNotStarted":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableRequiresValidTotpCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableAcceptsBackupCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableClearsMfaData":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableThrowsIfMfaNotEnabled":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableReturnsFalseWithInvalidCodeAndLogsFailure":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testForceDisableWorksWithoutCode":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testIsEnabledReturnsTrueWhenEnabled":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testIsEnabledReturnsFalseWhenDisabled":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testIsEnabledReturnsFalseForNonExistentUser":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetStatusReturnsCompleteStatusInfo":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGetStatusThrowsForNonExistentUser":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testRegenerateBackupCodesRequiresTotpVerification":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testRegenerateBackupCodesReturnsNullOnVerificationFailure":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testRegenerateBackupCodesThrowsIfMfaNotEnabled":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyAnyCodeTriesTotpFirstThenBackupCode":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyAnyCodeAcceptsBackupCodeWhenTotpFails":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyAnyCodeReturnsFalseForInvalidCodes":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testVerifyAnyCodeReturnsFalseWhenMfaNotEnabled":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBackupCodeVerificationNormalizesFormat":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBackupCodeVerificationRejectsMalformedCodes":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testBeginSetupThrowsForNonExistentUser":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testCompleteSetupThrowsForNonExistentUser":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testCompleteSetupThrowsIfMfaAlreadyEnabled":0.001,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testDisableThrowsForNonExistentUser":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateBackupCodesWithCustomCount":0,"Tests\\Unit\\Auth\\Services\\MfaServiceTest::testGenerateQrCodeReturnsProvisioningUri":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRateLimitResultIsBlockedReturnsCorrectValue":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRateLimitResultGetAttemptsReturnsCorrectCount":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRateLimitResultGetRetryAfterReturnsCorrectSeconds":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRateLimitResultWithZeroValues":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testLoginConfigUsesCorrectLimits":0.001,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testPasswordResetConfigUsesCorrectLimits":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testLoginUserConfigUsesCorrectLimits":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testMfaVerifyConfigUsesCorrectLimits":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testUnknownActionFallsBackToLoginConfig":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testCheckLimitReturnsNotBlockedWithNoAttempts":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testCheckLimitReturnsNotBlockedUnderLimit":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testCheckLimitReturnsBlockedAtLimit":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testCheckLimitReturnsBlockedOverLimit":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testCheckLimitCalculatesRetryAfterCorrectly":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRecordFailureCreatesNewRecordOnFirstFailure":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRecordFailureIncrementsExistingRecord":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testClearAttemptsRemovesDataFromRedis":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDifferentIdentifiersTrackedSeparately":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDifferentActionsTrackedSeparately":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseCheckLimitReturnsNotBlockedWithNoRecord":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseCheckLimitReturnsNotBlockedOutsideWindow":0.001,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseCheckLimitReturnsBlockedOverLimit":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseCheckLimitReturnsNotBlockedUnderLimit":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseCheckLimitCalculatesRetryAfterCorrectly":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseRecordFailureUsesUpsertPattern":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testDatabaseClearAttemptsRemovesRecord":0.001,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testFailOpenBehaviorWhenNoDbConnection":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testRecordFailureSilentlyFailsWithNoDbConnection":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testClearAttemptsSilentlyFailsWithNoDbConnection":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testIdentifierIsHashedInCacheKey":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testEmptyIdentifierIsHandled":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testVeryLongIdentifierIsHandled":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testSpecialCharactersInIdentifierAreHandled":0,"Tests\\Unit\\Auth\\Services\\RateLimiterTest::testClearAttemptsDoesNotAffectOtherActions":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_constructor_accepts_pdo_connection":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_generates_64_character_hex_token":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_stores_sha256_hash_not_plaintext":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_stores_correct_user_id":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_sets_correct_expiration":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_revokes_existing_tokens_first":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_generates_unique_tokens":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_valid_token_returns_user_id_and_new_token":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_invalid_token_returns_null":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_expired_token_returns_null_and_deletes":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_uses_hashed_token_for_lookup":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateToken_valid_token_returns_user_id":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateToken_invalid_token_returns_null":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateToken_expired_token_returns_null":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateToken_does_not_delete_expired_tokens":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_revokeAllForUser_deletes_all_tokens_for_user":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_revokeAllForUser_executes_delete_query":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_cleanupExpiredTokens_returns_count_of_deleted_tokens":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_cleanupExpiredTokens_returns_zero_when_nothing_to_clean":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_cleanupExpiredTokens_uses_correct_query":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_getCookieName_returns_remember_me":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_getTokenFromCookie_returns_null_when_no_cookie":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_getTokenFromCookie_returns_token_when_cookie_set":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_isSecureConnection_returns_true_for_production":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_isSecureConnection_returns_true_for_https":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_isSecureConnection_returns_true_for_forwarded_proto":0.002,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_isSecureConnection_returns_false_for_insecure":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_isSecureConnection_returns_false_when_https_is_off":0,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_token_hash_consistency":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_validateAndRotate_preserves_user_id":0.001,"Tests\\Unit\\Auth\\Services\\RememberMeServiceTest::test_createToken_uses_correct_table":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_creates_valid_jwt_with_correct_claims":0.004,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_includes_user_data_in_payload":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_includes_stores_array_in_payload":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_includes_permissions_array_in_payload":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_uses_rs256_algorithm":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_sets_correct_expiration":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_handles_partial_user_data":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_handles_empty_stores_and_permissions":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_valid_token_returns_decoded_payload":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_expired_token_returns_null":0.009,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_invalid_signature_returns_null":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_malformed_token_returns_null":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_wrong_key_returns_null":0.013,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_generates_64_character_hex_token":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_stores_sha256_hash_not_plaintext":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_stores_device_info":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_sets_correct_expiration":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_handles_missing_device_info":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createRefreshToken_generates_unique_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateRefreshToken_valid_token_returns_user_id_and_metadata":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateRefreshToken_expired_token_returns_null":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateRefreshToken_revoked_token_returns_null":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateRefreshToken_invalid_token_returns_null":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateRefreshToken_updates_lastUsedAt":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_revokeRefreshToken_marks_single_token_as_revoked":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_revokeRefreshToken_returns_false_when_token_not_found":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_revokeAllUserTokens_revokes_all_user_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_revokeAllUserTokens_returns_zero_when_no_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_revokeTokenById_revokes_token_with_user_check":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_rotateRefreshToken_validates_old_revokes_it_creates_new":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_rotateRefreshToken_returns_null_if_old_token_invalid":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_getAccessTokenTTL_returns_900_seconds":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_getRefreshTokenTTL_returns_604800_seconds":0,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_cleanupExpiredTokens_removes_old_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_cleanupExpiredTokens_returns_zero_when_nothing_to_clean":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_getUserActiveTokens_returns_list_of_active_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_getUserActiveTokens_returns_empty_array_when_no_tokens":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_createAccessToken_throws_exception_when_private_key_missing":0.001,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_validateAccessToken_returns_null_when_public_key_missing":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_full_access_token_flow_create_and_validate":0.002,"Tests\\Unit\\Auth\\Services\\TokenServiceTest::test_refresh_token_hash_consistency":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_constructor_accepts_pdo_only":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_constructor_accepts_pdo_and_audit_logger":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByExternalId_returns_user_when_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByExternalId_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByExternalId_uses_correct_parameters":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByEmail_returns_user_when_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByEmail_trims_whitespace":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByEmail_returns_null_when_not_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByName_returns_matching_users":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByName_returns_empty_array_when_no_matches":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByName_trims_names":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByNameInStore_returns_users_from_store":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByNameInStore_uses_store_parameter":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByPhone_returns_user_when_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByPhone_normalizes_phone_number":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByPhone_returns_null_for_short_phone":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findByPhone_handles_country_code":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_prioritizes_external_id_match":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_falls_back_to_email_match":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_returns_no_match_when_nothing_found":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_stringSimilarity_returns_100_for_exact_match":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_stringSimilarity_returns_0_for_empty_strings":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_stringSimilarity_scores_similar_strings":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_calculateNameSimilarity_weights_last_name_higher":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_extractEmailDomain_returns_domain":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_extractEmailDomain_returns_null_for_invalid_email":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_logMatch_calls_audit_logger":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_logMatch_logs_not_matched_event":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_uses_store_scoped_name_matching":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_prioritizes_store_name_over_global_name":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_falls_back_to_global_name_match":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_uses_phone_as_last_resort":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_findMatch_rejects_phone_match_with_low_name_similarity":0.001,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_calculateMatchScore_exact_name_match_scores_high":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_calculateMatchScore_adds_bonus_for_email_domain_match":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_calculateMatchScore_adds_bonus_for_phone_match":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_calculateMatchScore_caps_at_100":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_buildMatchReason_includes_name_information":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_buildMatchReason_includes_email_domain_when_matched":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_buildMatchReason_includes_phone_when_matched":0,"Tests\\Unit\\Auth\\Services\\UserMatcherTest::test_buildMatchReason_combines_multiple_signals":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #0":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #1":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #2":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #3":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #4":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #5":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #6":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #7":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #8":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #9":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #10":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #11":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #12":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #13":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #14":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #15":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #16":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #17":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #18":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #19":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #20":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #21":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #22":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #23":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #24":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #25":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #26":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #27":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #28":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #29":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #30":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #31":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #32":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #33":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassExistsInNewNamespace with data set #34":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #0":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #1":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #2":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #3":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #4":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #5":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #6":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #7":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #8":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #9":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #10":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #11":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #12":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #13":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #14":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #15":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #16":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #17":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #18":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #19":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #20":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #21":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #22":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #23":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #24":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #25":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #26":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #27":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #28":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #29":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #30":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #31":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #32":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #33":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testCoreClassLegacyAlias with data set #34":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testRobotClassesExist with data set #0":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testRobotClassesExist with data set #1":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testRobotClassesExist with data set #2":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testRobotClassesExist with data set #3":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #0":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #1":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #2":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #3":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #4":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #5":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #6":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #7":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #8":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #9":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #10":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #11":0.001,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #12":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLoyaltyClassesExist with data set #13":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testSmsServiceClassesExist":0.003,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testFeatureNamespacesExist":0.003,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testControllersExist":0.003,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testInheritanceChains":0,"Tests\\Unit\\Autoload\\ComprehensiveAutoloadTest::testLegacyAliasResolvesToCorrectClass":0,"Tests\\Unit\\Autoload\\LegacyAliasTest::testCoreModelAliasesExist":0,"Tests\\Unit\\Autoload\\LegacyAliasTest::testRobotAliasesExist":0,"Tests\\Unit\\Autoload\\LegacyAliasTest::testLoyaltyAliasesExist":0,"Tests\\Unit\\Autoload\\LegacyAliasTest::testSmsAliasesExist":0.001,"Tests\\Unit\\Autoload\\LegacyAliasTest::testUtilityAliasesExist":0,"Tests\\Unit\\Autoload\\LegacyAliasTest::testAliasedClassesAreInstantiable":0,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testStoreClassExistsInNewNamespace":0,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testLegacyStoreAliasWorks":0,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testStoreCanBeInstantiatedWithoutId":0.001,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testStoreHasGetDbNameMethod":0,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testStoreHasGetTypeNumMethod":0,"Tests\\Unit\\Autoload\\StoreAutoloadTest::testLegacyAliasAndNewClassAreSame":0.001,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_AllSuccess":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_WithSkipped":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_WithFailed":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_AllFailed":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_MixedSkippedAndFailed":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_SingleBinSuccess":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testBuildMassEditMessage_AllSkipped":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testSuccessDetermination_AllUpdated":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testSuccessDetermination_PartialFailure":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testSuccessDetermination_AllFailed":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testSuccessDetermination_AllSkipped":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_ValidRange with data set \"min\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_ValidRange with data set \"middle\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_ValidRange with data set \"max\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_InvalidRange with data set \"zero\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_InvalidRange with data set \"negative\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_InvalidRange with data set \"over_max\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsQuantityValidation_InvalidRange with data set \"way_over\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_ValidFormat with data set \"standard\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_ValidFormat with data set \"leap_year\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_ValidFormat with data set \"end_of_year\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"slashes\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"no_dashes\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"short_year\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"datetime\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"words\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAgeDateValidation_InvalidFormat with data set \"empty\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_ValidTypes with data set \"pos\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_ValidTypes with data set \"custom\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_InvalidTypes with data set \"empty\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_InvalidTypes with data set \"unknown\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_InvalidTypes with data set \"POS_subcategory\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testCategoryTypeValidation_InvalidTypes with data set \"pos\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagModeValidation_ValidModes with data set \"add\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagModeValidation_ValidModes with data set \"remove\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagModeValidation_InvalidModes with data set \"replace\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagModeValidation_InvalidModes with data set \"set\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagModeValidation_InvalidModes with data set \"empty\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_ValidTypes with data set \"pos_subcategory\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_ValidTypes with data set \"custom\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_InvalidTypes with data set \"empty\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_InvalidTypes with data set \"POS\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_InvalidTypes with data set \"subcategory\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_InvalidTypes with data set \"pos\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testTagTypeValueValidation_InvalidTypes with data set \"Custom\"":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testStandardResponseShape":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testHideResponseIncludesHiddenCount":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testPrintLabelsResponseShape":0,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testUserIdSecurityContract":0.001,"Tests\\Unit\\Backstock\\BackstockMassEditRoutesTest::testAllRoutesCheckStoreAccess":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesGeneratesValidTestEventData":0.001,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesCreatesUpcomingEvent":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesCreatesBuildUpEvent":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesCreatesActiveEvent":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesCreatesWindDownEvent":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEventFixturesCreatesCompletedEvent":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCreateTestEventSetCreatesAllPhaseEvents":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationUpcoming":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationBuildUp":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationActive":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationWindDown":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationCompleted":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationOnStartDate":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationOnEndDate":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationDayAfterEndDate":0,"Tests\\Unit\\Backstock\\EventServiceTest::testPhaseCalculationOnBuildUpStartDate":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinStatusCategorizationStored":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinStatusCategorizationPulled":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinStatusCategorizationFinished":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinCountingAggregation":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessCalculationBuildUp":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessCalculationActive":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessCalculationWindDown":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessStatusReady":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessStatusPartial":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessStatusNotReady":0,"Tests\\Unit\\Backstock\\EventServiceTest::testReadinessCalculationEmptyState":0,"Tests\\Unit\\Backstock\\EventServiceTest::testAlertTriggerBuildUpStarting":0,"Tests\\Unit\\Backstock\\EventServiceTest::testAlertTriggerEventStarting":0,"Tests\\Unit\\Backstock\\EventServiceTest::testAlertTriggerWindDownStarting":0,"Tests\\Unit\\Backstock\\EventServiceTest::testAlertTriggerBuildUpBehind":0,"Tests\\Unit\\Backstock\\EventServiceTest::testAlertTriggerWindDownBehind":0,"Tests\\Unit\\Backstock\\EventServiceTest::testNoAlertTriggerWhenOnSchedule":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinPullRecommendationOffsiteOnly":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinStoreRecommendationOnsiteOnly":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinPullPrioritySorting":0,"Tests\\Unit\\Backstock\\EventServiceTest::testDashboardSummaryStructure":0,"Tests\\Unit\\Backstock\\EventServiceTest::testDashboardBinsToPullLimited":0,"Tests\\Unit\\Backstock\\EventServiceTest::testDashboardActiveEventsLimited":0,"Tests\\Unit\\Backstock\\EventServiceTest::testDashboardUpcomingEventsLimited":0,"Tests\\Unit\\Backstock\\EventServiceTest::testTimelineEventIncludesPhaseInfo":0,"Tests\\Unit\\Backstock\\EventServiceTest::testTimelineBuildUpStartDateCalculation":0,"Tests\\Unit\\Backstock\\EventServiceTest::testTimelineWindDownEndDateCalculation":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCategoryPrioritySorting":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCategoryCountAggregation":0,"Tests\\Unit\\Backstock\\EventServiceTest::testTemplateToEventTransformation":0,"Tests\\Unit\\Backstock\\EventServiceTest::testYearAppliedToEventName":0,"Tests\\Unit\\Backstock\\EventServiceTest::testEmptyCategoryIdsReturnsZeroCounts":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinsToPullEmptyForNoCategories":0,"Tests\\Unit\\Backstock\\EventServiceTest::testDashboardHandlesEmptyStateGracefully":0,"Tests\\Unit\\Backstock\\EventServiceTest::testBinFixturesGeneratesValidBinData":0.001,"Tests\\Unit\\Backstock\\EventServiceTest::testBinFixturesCreatesVariousAgeBins":0.001,"Tests\\Unit\\Backstock\\EventServiceTest::testBinFixturesUuidGeneration":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCategoryFixturesGeneratesValidCategoryData":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCategoryFixturesCreatesCategorySet":0,"Tests\\Unit\\Backstock\\EventServiceTest::testCategoryFixturesValidatesColorFormat":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinReturnsValidStructure":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinReturnsDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinOverridePattern":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinRowIncludesDatabaseFields":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinRowAcceptsIdOverride":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateTestBinSetReturnsAllAgingScenarios":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateNewBinHasRecentAgeDate":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateAgedBinIsAtAgingThreshold":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateVeryAgedBinIsVeryOld":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateExtremelyOldBinIsOverOneYear":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateHiddenBinIsInactive":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateDeletedBinIsDeleted":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateEmptiedBinHasNoCategory":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateBinAtLocationHasCorrectLocation":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateBinWithCategoryHasCorrectCategory":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCalculateExpectedAgeColorReturnsCorrectColors":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCalculateExpectedAgePercentReturnsCorrectPercentages":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testGenerateUuidReturnsCorrectLength":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testGenerateUuidReturnsUniqueValues":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testGenerateUuidContainsOnlyAlphanumeric":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateMultipleBinsReturnsCorrectCount":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateMultipleBinsHasUniqueUuids":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateMultipleBinsHasSequentialNames":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCreateMultipleBinsAcceptsOverrides":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testAgeConstantsAreDefined":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testCustomDaysOldOverride":0,"Tests\\Unit\\Backstock\\Fixtures\\BinFixturesTest::testBinSetCoversDifferentAgingBrackets":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategoryReturnsValidStructure":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategoryReturnsDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategoryOverridePattern":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategoryRowIncludesDatabaseFields":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategoryRowAcceptsIdOverride":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateTestCategorySetReturnsAllCategories":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateClothingCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateElectronicsCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateHomeGoodsCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateToysCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateSportsCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateBooksCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateSeasonalCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateOtherCategoryHasCorrectDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateCategoryHierarchyReturnsNestedStructure":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateCategoryHierarchyHasClothingSubcategories":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateCategoryHierarchyHasElectronicsSubcategories":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateCategoryHierarchyHasHomeGoodsSubcategories":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateMultipleCategoriesReturnsCorrectCount":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateMultipleCategoriesHasSequentialNames":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateMultipleCategoriesCyclesThroughColors":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCreateMultipleCategoriesAcceptsOverrides":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testGetRandomColorReturnsValidHexColor":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testGetRandomColorReturnsColorFromPalette":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testIsValidColorReturnsTrueForValidColors":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testIsValidColorReturnsFalseForInvalidColors":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testDefaultColorsConstantHasAllCategories":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testAllDefaultColorsAreValidHexFormat":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testCategorySetCoversAllDefaultColors":0,"Tests\\Unit\\Backstock\\Fixtures\\CategoryFixturesTest::testTypedCategoryMethodsAcceptOverrides":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventReturnsValidStructure":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventReturnsDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventOverridePattern":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventRowIncludesDatabaseFields":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventRowAcceptsIdOverride":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateTestEventSetReturnsAllPhaseScenarios":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateUpcomingEventIsInUpcomingPhase":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateBuildUpEventIsInBuildUpPhase":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateActiveEventIsInActivePhase":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateWindDownEventIsInWindDownPhase":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateCompletedEventIsInCompletedPhase":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCalculateExpectedPhaseMatchesUpcomingLogic":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCalculateExpectedPhaseMatchesBuildUpLogic":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCalculateExpectedPhaseMatchesActiveLogic":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCalculateExpectedPhaseMatchesWindDownLogic":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCalculateExpectedPhaseMatchesCompletedLogic":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateHolidayEventHasHolidayDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateClearanceEventHasClearanceDefaults":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateInactiveEventIsInactive":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testCreateRecurringEventHasTemplateId":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testEventDatesAreValid":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testAllEventSetEntriesHaveValidDateRanges":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testConstantsAreDefined":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testBuildUpEventTiming":0,"Tests\\Unit\\Backstock\\Fixtures\\EventFixturesTest::testWindDownEventTiming":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testControllerAcceptsServices":0.006,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetSummaryCallsBillingService":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetStoreDetailCallsBillingService":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetInvoiceDetailCallsInvoiceService":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetInvoiceDetailReturnsNullForMissing":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetInvoicesListCallsRepository":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetCurrentUsageCallsRepository":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetUsageTrendsCallsRepository":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testGetConfigCallsConfigService":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testVoidInvoiceCallsService":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testRegenerateInvoiceWorkflow":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testExportDataGeneratesCsv":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testPeriodFormatValidation":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testTypeNumFormatValidation":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testSortColumnWhitelist":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testSortDirectionWhitelist":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testMonthsCapIs12":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testUsageTrendsResponseShape":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testConfigResponseShape":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Controllers\\BillingApiControllerTest::testUpdateConfigResponseIncludesMessage":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_bothStatusesAreDefined":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_allConstantContainsBothValues":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_labelsReturnsCorrectLabels":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_isValidReturnsTrueForValidStatuses":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_isValidReturnsFalseForInvalidStatuses":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_labelReturnsCorrectLabel":0,"Tests\\Unit\\Billing\\Enums\\InvoiceStatusTest::test_labelReturnsValueForInvalidStatus":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_allFiveTypesAreDefined":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_allConstantContainsAllFiveValues":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_labelsReturnsCorrectLabels":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_isValidReturnsTrueForValidTypes":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_isValidReturnsFalseForInvalidTypes":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_getSortOrderReturnsCorrectValues":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_getSortOrderMaintainsProperSequence":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_getSortOrderReturnsDefaultForInvalidType":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_labelReturnsCorrectLabel":0,"Tests\\Unit\\Billing\\Enums\\LineItemTypeTest::test_labelReturnsValueForInvalidType":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_allEightCategoriesAreDefined":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_allConstantContainsAllEightValues":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_labelsReturnsCorrectLabels":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_isValidReturnsTrueForValidCategories":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_isValidReturnsFalseForInvalidCategories":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_labelReturnsCorrectLabel":0,"Tests\\Unit\\Billing\\Enums\\SmsCategoryTest::test_labelReturnsValueForInvalidCategory":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_name_is_billing_generate_invoices":0.001,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_display_name_is_descriptive":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_runs_on_default_queue":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_scope_is_global":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_timeout_is_adequate":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_handle_generates_invoices_for_all_active_stores":0.004,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_idempotent_rerun_skips_stores_with_existing_invoices":0.003,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_single_store_failure_doesnt_block_other_stores":0.003,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_handle_with_no_active_stores":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_job_returns_success_with_metrics":0.002,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_get_previous_month_february_returns_january":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_get_previous_month_january_returns_december_previous_year":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_get_previous_month_march_returns_february":0,"Tests\\Unit\\Billing\\Jobs\\InvoiceGenerationJobTest::test_get_previous_month_handles_month_end_rollover":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getEffectiveBaseRateReturnsOverrideWhenSet":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getEffectiveBaseRateReturnsDefaultForTypes1Through4":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getEffectiveBaseRateReturnsDefaultForType5":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getEffectiveBaseRateReturnsFallbackForUnknownType":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getCategoryConfigReturnsMatchingCategory":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_getCategoryConfigReturnsNullForNonExistentCategory":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_toArrayConvertsToArrayRepresentation":0,"Tests\\Unit\\Billing\\Models\\BillingConfigTest::test_toArrayHandlesNullValues":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_createFromRowCreatesInstanceWithRequiredFields":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_createFromRowHandlesVoidedFields":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_toArrayConvertsToArrayRepresentation":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_toArrayIncludesLineItems":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_isFinalizedReturnsTrueForFinalizedInvoice":0,"Tests\\Unit\\Billing\\Models\\BillingInvoiceTest::test_isVoidedReturnsTrueForVoidedInvoice":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_createFromRowCreatesInstanceWithRequiredFields":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_createFromRowHandlesSmsLineItem":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_toArrayConvertsToArrayRepresentation":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_isSmsBasedReturnsTrueForSmsUsage":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_isSmsBasedReturnsTrueForSmsIncluded":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_isSmsBasedReturnsFalseForNonSmsLineItems":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_isSmsBasedReturnsFalseForPremiumModule":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_metadataJsonDecodingHandlesNull":0,"Tests\\Unit\\Billing\\Models\\BillingLineItemTest::test_createFromRowWithInvalidMetadataJson":0.001,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_createFromRowCreatesInstanceWithRequiredFields":0,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_createFromRowHandlesMultiSegmentSms":0,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_createFromRowHandlesNonBillableSms":0,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_createFromRowHandlesFailedSms":0,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_createFromRowHandlesInboundSms":0,"Tests\\Unit\\Billing\\Models\\SmsUsageRecordTest::test_toArrayConvertsToArrayRepresentation":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetStoreConfigReturnsFullConfig":0.001,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetStoreConfigReturnsNullWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetBaseRateOverrideReturnsValue":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetBaseRateOverrideReturnsNullWhenNotSet":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetCategoryOverrideReturnsConfig":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetCategoryOverrideReturnsNullWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetAllCategoryConfigsReturnsArray":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetAllCategoryConfigsReturnsEmptyArrayWhenNone":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testSaveCategoryConfigsUpserts":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testSaveCategoryConfigsWithEmptyArrayReturnsFalse":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testUpdateStoreConfigUpdatesWhitelistedFields":0.011,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testUpdateStoreConfigRejectsNonWhitelistedColumn":0.001,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testUpdateStoreConfigWithEmptyFieldsReturnsFalse":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testUpdateStoreConfigReturnsFalseWhenNoRowsUpdated":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetStoreTypeReturnsType":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetStoreTypeReturnsNullWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetActiveStoresReturnsArray":0,"Tests\\Unit\\Billing\\Repositories\\BillingConfigRepositoryTest::testGetActiveStoresReturnsEmptyArrayWhenNone":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testCreateInvoiceReturnsInsertId":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testCreateInvoiceWithNullJobId":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testFindByStoreAndPeriodReturnsInvoice":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testFindByStoreAndPeriodReturnsNullWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testAddLineItemsBulkInsert":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testAddLineItemsWithEmptyArrayReturnsFalse":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testGetInvoiceWithLineItemsReturnsFullData":0.001,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testGetInvoiceWithLineItemsReturnsNullWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testListInvoicesPaginatesCorrectly":0.001,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testListInvoicesSecondPage":0.001,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testGetAllStoresSummaryWithValidation":0.001,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testGetAllStoresSummaryRejectsBadSortColumn":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testGetAllStoresSummaryRejectsBadSortDirection":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testVoidInvoiceUpdatesStatusAndRecordsWho":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testVoidInvoiceWithNullUserId":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testVoidInvoiceReturnsFalseWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testUpdateTotalUpdatesAmount":0,"Tests\\Unit\\Billing\\Repositories\\InvoiceRepositoryTest::testUpdateTotalReturnsFalseWhenNotFound":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testInsertUsageReturnsLastInsertId":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testInsertUsageWithNullProviderMessageId":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testGetUsageSummaryReturnsAggregatedData":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testGetUsageSummaryWithNoData":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testGetUsageTrendsReturnsMultipleMonths":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testGetUsageTrendsWithCustomMonthCount":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testGetUsageTrendsWithNoData":0,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testUpdateDeliveryStatusIdempotentWhenNoRowsChanged":0.001,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testUpdateCostIdempotentWhenNoRowsChanged":0.001,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testMarkCostUnknownIdempotentWhenNoRowsChanged":0.001,"Tests\\Unit\\Billing\\Repositories\\SmsUsageRepositoryTest::testUpdateDeliveryStatusReturnsFalseWhenRecordDoesNotExist":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetEffectiveBaseRateWithOverride":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetEffectiveBaseRateConceptDefault":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetEffectiveBaseRatePias":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetCategoryConfigWithStoreOverride":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetCategoryConfigPlatformDefault":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testDefaultSmsCategoryBillability":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testSaveConfig":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetBillingContactEmail":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetBillingContactEmailNull":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testGetAllCategoryConfigs":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testInvalidateCacheDeletesAllKeys":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingConfigServiceTest::testInvalidateCacheHandlesNullRedis":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testHasActiveInvoice":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testHasActiveInvoiceReturnsFalse":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceBaseRateOnly":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceWithSmsUsageAllIncluded":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceWithSmsBillableNoFreeCount":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceWithSmsFreeCount":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceWithSmsFreeCountExceedsBillable":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoiceThrowsOnDuplicate":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGetActiveStores":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoicePremiumAddedWhenActive":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoicePremiumNotAddedWhenNone":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\BillingServiceTest::testGenerateInvoicePremiumAddedWhenTrial":0.001,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testCreateInvoiceNumberFormat":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testCreateInvoiceNumberFormatDifferentPeriods":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testAddLineItems":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testUpdateTotal":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGetInvoiceDetail":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGetInvoiceDetailNotFound":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testVoidInvoice":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testVoidInvoiceWithUserId":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testVoidAndRegenerate":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGeneratePdfReturnsNonEmptyString":0.002,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGeneratePdfStartsWithPdfMarker":0.002,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testGeneratePdfThrowsExceptionForNonExistentInvoice":0,"BuyerKiosk\\Tests\\Unit\\Billing\\Services\\InvoiceServiceTest::testFormatInvoiceNumber":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetSmsCostSummaryAggregatesByStore":0.001,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetSmsCostSummaryAggregatesByCategory":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetStoreCostDetailReturnsPerStoreBreakdown":0.001,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testBasePlanCategoriesShowZeroRevenue":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testDemoStoresExcludedFromCalculations":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetDeliveryRatesFlagsStoresBelow90Percent":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetCostTrendReturns12MonthData":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testProfitMarginCalculationHandlesZeroRevenue":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetWebhookHealthReturnsSuccessFailureCounts":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testRequiresStartAndEndDate":0,"Tests\\Unit\\Billing\\Services\\SmsCostReportServiceTest::testGetStoreCostDetailThrowsOnInvalidStore":0.001,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testUpdateDeliveryStatusSuccess":0,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testUpdateDeliveryStatusWithErrorCode":0,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testUpdateDeliveryStatusCatchesException":0.001,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testUpdateCostSuccess":0,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testUpdateCostCatchesException":0.001,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testMarkCostUnknownSuccess":0,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testMarkCostUnknownCatchesException":0.001,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testIncrementCostRetrySuccess":0,"Tests\\Unit\\Billing\\Services\\SmsUsageTrackerTest::testIncrementCostRetryCatchesException":0.001,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceReturnsVarianceArray":0.009,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceCalculatesCashInVariance":0.001,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceCalculatesCashOutVariance":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithZeroTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithMatchingAmounts":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithPositiveVariance":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithNegativeVariance":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceIncludesReportedAndCalculated":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInSumsPaidInTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInSumsS2RTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInIgnoresPaidOutTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInIgnoresR2STransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInWithEmptyArray":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashInWithMixedTypes":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutSumsPaidOutTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutSumsR2STransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutIgnoresPaidInTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutIgnoresS2RTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutWithEmptyArray":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateTotalCashOutWithMixedTypes":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"perfect balance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"cash over on both\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"cash under on both\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"mixed variance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"zero reported zero calculated\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"large amounts\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"fractional cents\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testVarianceCalculationWithDataProvider with data set \"multiple transactions same type\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"PaidIn counts as cash in\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"S2R counts as cash in\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"PaidOut counts as cash out\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"R2S counts as cash out\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"Open ignored in balance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"Close ignored in balance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"Safe ignored in balance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testTransactionTypeFiltering with data set \"Void ignored in balance\"":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithOnlyNonCountedTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceWithLargeNumberOfTransactions":0,"Tests\\Unit\\Cash\\CashBalancerTest::testCalculateVariancePublicMethod":0,"Tests\\Unit\\Cash\\CashBalancerTest::testBalanceAndCalculateVarianceReturnSameResult":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivity_returns_array_with_all_fields":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivity_returns_default_values":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivity_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivity_calculates_total_automatically":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivity_respects_explicit_total_override":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivityRow_excludes_id":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"Open\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"Close\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"Safe\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"S2R\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"R2S\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"S2B\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"B2S\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"PaidIn\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"PaidOut\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_trans_types_are_valid with data set \"Void\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_isValidTransType_rejects_invalid_types":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 1\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 2\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 3\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 4\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 5\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 6\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 7\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 8\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 9\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 10\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 11\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 12\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 13\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 14\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 15\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 16\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 17\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 18\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 19\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 20\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 21\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 22\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 23\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Register 24\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_registers_are_valid with data set \"Safe\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_isValidRegister_rejects_invalid_registers":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 1\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 2\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 3\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 4\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 5\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 6\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 7\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 8\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 9\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 10\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 11\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 12\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 13\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 14\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 15\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 16\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 17\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 18\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 19\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 20\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 21\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 22\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 23\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Register 24\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"Safe\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_all_destinations_are_valid with data set \"None\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_isValidDestination_rejects_invalid_destinations":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createOpenTransaction_has_correct_type_and_float":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createOpenTransaction_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createCloseTransaction_has_correct_type":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createCloseTransaction_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_sets_correct_register_and_destination with data set \"S2R - Safe to Register\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_sets_correct_register_and_destination with data set \"R2S - Register to Safe\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_sets_correct_register_and_destination with data set \"S2B - Safe to Bank\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_sets_correct_register_and_destination with data set \"B2S - Bank to Safe\"":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_throws_for_invalid_type":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTransferTransaction_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createEmptyDenominations_returns_all_zeros":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createStandardFloat_returns_realistic_opening_amount":0.001,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createRandomDenominations_approaches_target_total":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createRandomDenominations_returns_non_negative_values":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createRandomDenominations_handles_small_amounts":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_calculateTotal_handles_empty_denominations":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_calculateTotal_sums_all_denomination_types":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivitySet_returns_all_scenario_types":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_createTestCashActivitySet_scenarios_have_correct_trans_types":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_timestamp_is_valid_datetime":0,"Tests\\Unit\\Cash\\Fixtures\\CashActivityFixturesTest::test_timestamp_can_be_overridden":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createTestSafeConfiguration_returns_array_with_all_fields":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createTestSafeConfiguration_returns_default_values":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createTestSafeConfiguration_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createTestSafeConfigurationRow_excludes_id":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_critical_thresholds_are_lower_than_low_thresholds":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_coins_per_roll_constants_are_correct":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_bills_per_bundle_constants_are_correct":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_default_config_uses_standard_roll_counts":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_default_config_uses_standard_bundle_counts":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createHighVolumeConfiguration_has_higher_thresholds":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createHighVolumeConfiguration_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createLowVolumeConfiguration_has_lower_thresholds":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createLowVolumeConfiguration_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createWithDrsPassword_sets_password":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createWithDrsPassword_uses_default_password":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_createWithDrsPassword_accepts_overrides":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isLow_returns_correct_result with data set \"at low threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isLow_returns_correct_result with data set \"below low threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isLow_returns_correct_result with data set \"above low threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isLow_returns_correct_result with data set \"at zero\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isCritical_returns_correct_result with data set \"at critical threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isCritical_returns_correct_result with data set \"below critical threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isCritical_returns_correct_result with data set \"above critical threshold\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_isCritical_returns_correct_result with data set \"at zero\"":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_getWantedAmount_returns_correct_value":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_getWantedAmount_returns_null_for_missing_denomination":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_timestamp_is_valid_datetime":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_timestamp_can_be_overridden":0,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_all_threshold_values_are_non_negative":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_all_wanted_values_are_non_negative":0.001,"Tests\\Unit\\Cash\\Fixtures\\SafeConfigurationFixturesTest::test_all_per_roll_bundle_values_are_positive":0,"Tests\\Unit\\Chat\\ChatApiControllerProviderIdTest::testChatApiControllerSqlIncludesProviderMessageId":0,"Tests\\Unit\\Chat\\ChatApiControllerProviderIdTest::testDeliveryStatusSetToSent":0,"Tests\\Unit\\Chat\\ChatApiControllerProviderIdTest::testProviderMessageIdHandlesSendResult":0,"Tests\\Unit\\Chat\\ChatApiControllerProviderIdTest::testProviderNormalizationLogic":0,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeCreatesNewThreadAndMessageWhenNoExistingThread":0.002,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeReusesExistingThreadForBuy":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeReusesExistingThreadByPhoneForRepeatCustomer":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeStoresCorrectMessageContentAndSegmentCount":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeCatchesExceptionsAndNeverThrows":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testAblyExceptionDoesNotAffectBridge":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeWithNullAblyPublisherSkipsEvents":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeStoresProviderDataFromSmsResult":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeNormalizesCustomerPhoneDigitsOnly":0.001,"Tests\\Unit\\Chat\\ChatBridgeServiceTest::testBridgeHandlesMissingMessageInSmsResult":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetFeedReturnsTodaysThreadsWithCorrectStructure":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetFeedIncludesDoNotTextFlagWithPhoneNormalization":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetBadgesReturnsQueueCompletedCounts":0,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testMarkReadUpdatesLastReadAtAndReturnsFreshBadgeCounts":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testRetryMessageValidatesMessageIsInFailedState":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testRetryMessageRejectsInboundMessages":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testRetryMessageReQueuesFailedMessageWithProvider":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetCostRateReturnsGlobalDefaultWhenNoStoreOverride":0,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetCostRateReturnsStoreOverrideWhenConfigured":0,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetCompletedDataReturnsBuysWithSmsStatusMerged":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetCompletedDataNormalizesZeroDatesToNull":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetCompletedDataTwilioSentFallbackWhenNoThread":0.001,"Tests\\Unit\\Chat\\ChatPanelControllerTest::testGetQueueSmsStatusReturnsSmsStatusKeyedByBuyId":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testT821FeedApiReturnsCorrectThreads":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testT822BadgeCountsMatchExpectedDistribution":0,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testT823MarkReadDecrementsBadge":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testT824BuyCompleteBadgeTransfers":0,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testT825RetryFailedMessageStatusChange":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testRetryMessageValidatesFailedState":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testBadgeCountsExcludeOrphanThreads":0,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testFeedIncludesDoNotTextFlagWithPhoneNormalization":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testMarkReadPublishesAblyEvent":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testGetCompletedDataMergesSmsStatus":0.001,"Tests\\Unit\\Chat\\ChatPanelIntegrationTest::testGetQueueSmsStatusReturnsSmsStatusKeyedByBuyId":0.001,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testMarkThreadReadUpdatesLastReadAt":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountCountsInboundMessagesAfterLastReadAt":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetBadgeCountsSeparatesQueueCompletedOrphanCorrectly":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetBadgeCountsExcludesOrphanThreads":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountReturnsZeroWhenLastReadAtIsAfterAllMessages":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountsBatchReturnsCountsForMultipleThreads":0.001,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetBadgeCountsReturnsZerosWhenNoUnreadMessages":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testMarkThreadReadThrowsExceptionForInvalidThreadId":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountsBatchReturnsEmptyForEmptyInput":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountsBatchHandlesSingleThread":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testMarkThreadReadValidatesNegativeThreadId":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountValidatesThreadId":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetBadgeCountsUsesCorrectBuyQueueColumnNames":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetBadgeCountsIncludesCompletedBuysFromPreviousDays":0,"Tests\\Unit\\Chat\\ChatReadTrackingServiceTest::testGetUnreadCountsBatchFiltersInvalidIds":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_Constructor_DisablesWhenNoAblyKey":0.001,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_Constructor_DisablesWhenAblyKeyEmpty":0.001,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_Constructor_EnablesWithAblyKey":0.006,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_Publish_SkipsWhenDisabled":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishNewMessage_SendsCorrectEventFormat":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishNewThread_SendsCorrectEventFormat":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishDeliveryUpdate_SendsCorrectEventFormat":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_Publish_IncludesTimestampAndCategory":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishThreadClosed_SendsCorrectEventFormat":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishFreetextUnlocked_SendsCorrectEventFormat":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishDeliveryUpdate_HandlesAllStatusValues":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishNewThread_HandlesNullBuyId":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_PublishNewMessage_OutboundWithEmployeeId":0,"Tests\\Unit\\Chat\\Events\\ChatAblyPublisherTest::test_MultipleEvents_MaintainSeparatePayloads":0,"BuyerKiosk\\Tests\\Unit\\Chat\\InboundCostTrackingTest::testVonageInboundCostExtracted":0.085,"BuyerKiosk\\Tests\\Unit\\Chat\\InboundCostTrackingTest::testTwilioInboundCostJobDispatched":0.057,"BuyerKiosk\\Tests\\Unit\\Chat\\InboundCostTrackingTest::testInboundUsageLoggedWithInboundCategory":0.047,"BuyerKiosk\\Tests\\Unit\\Chat\\InboundCostTrackingTest::testCostTrackingFailureDoesNotBlockProcessing":0.001,"BuyerKiosk\\Tests\\Unit\\Chat\\InboundCostTrackingTest::testInboundReceivedTrackingEvent":0.062,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_fromRow_creates_instance_with_all_fields":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_fromRow_handles_null_optional_fields":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_fromRow_casts_numeric_fields_correctly":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_fromRow_parses_timestamps_correctly":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_direction_constants_are_defined":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_direction_inbound_for_customer_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_direction_outbound_for_staff_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_sender_type_constants_are_defined":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_sender_type_customer_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_sender_type_staff_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_sender_type_system_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_delivery_status_constants_are_defined":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_delivery_status_progression":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_is_delivered_returns_true_for_delivered_status":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_is_failed_returns_true_for_failed_statuses":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_is_pending_returns_true_for_pending_or_queued":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_category_constants_are_defined":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_transactional_category_for_template_messages":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_interactive_category_for_freetext_messages":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_inbound_messages_are_always_interactive":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_single_segment":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_exactly_160_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_161_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_306_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_307_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_empty_string":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_gsm_max_allowed":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_unicode_single_segment":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_unicode_71_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_unicode_134_chars":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_for_emoji_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_calculate_segment_count_with_mixed_gsm_and_unicode":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_detect_unicode_with_emoji":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_contains_unicode_helper":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_mark_as_read_sets_timestamp":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_mark_as_read_does_not_overwrite_existing_timestamp":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_is_read_returns_correct_state":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_update_delivery_status_updates_all_fields":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_update_delivery_status_with_error":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_update_delivery_status_progression_pending_to_sent":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_update_delivery_status_progression_sent_to_delivered":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_update_delivery_status_with_null_timestamp":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_to_array_returns_expected_structure":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_to_array_returns_correct_values":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_to_array_formats_timestamps_as_strings":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_to_array_handles_null_values":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_to_array_includes_derived_fields":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_provider_constants_are_defined":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_vonage_provider_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_twilio_provider_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_character_count_matches_content_length":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_very_long_error_message":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_special_characters_in_content":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_multiline_content":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_content_with_unicode_characters":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_template_reference_when_used":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_freetext_message_without_template":0,"Tests\\Unit\\Chat\\Models\\ChatMessageTest::test_setters_modify_values_correctly":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testFromRowCreatesInstance":0.001,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testFromRowHandlesNullOptionalFields":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testFromRowHandlesBooleanConversion":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCategoryConstants":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCategoryConstantsAreValidInFromRow":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testGetWildcardsExtractsAllWildcards":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testGetWildcardsReturnsEmptyArrayForNoWildcards":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testGetWildcardsHandlesDuplicates":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testGetWildcardsExtractsAllValidTypes":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testGetWildcardsHandlesEmptyContent":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateCharacterCountWithoutWildcards":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateCharacterCountWithWildcards":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateCharacterCountWithEmptyContent":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateCharacterCountWithSpecialCharacters":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCount160CharsOrLess":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCountAt1Character":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCountAt159Characters":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCount161To306Chars":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCountAt306Characters":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCountAt320Characters":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCalculateSegmentCountEmptyContent":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateReturnsErrorForOver320Chars":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateReturnsErrorForWayOver320Chars":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateReturnsSuccessForValidTemplate":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateReturnsSuccessAtExactly320Chars":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateRequiresShortName":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateRequiresContent":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateRequiresValidCategory":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testIsSystemPreventsModification":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testIsSystemFalseAllowsModification":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCanModifyReturnsFalseForSystemTemplates":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCanModifyReturnsTrueForNonSystemTemplates":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCanDeleteReturnsFalseForSystemTemplates":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testCanDeleteReturnsTrueForNonSystemTemplates":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testToArrayReturnsExpectedStructure":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testToArrayIncludesComputedFields":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testToArrayHandlesNullValues":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testContainsUnknownWildcardsDetection":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testContainsUnknownWildcardsReturnsEmptyForValidOnly":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testHasUnknownWildcardsReturnsTrueForInvalid":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testHasUnknownWildcardsReturnsFalseForValid":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testValidateWarnsAboutUnknownWildcards":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testAllValidWildcardsAreRecognized":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testIsActiveDefaultsToTrue":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testSortOrderAffectsOrdering":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testTypeNumIsRequired":0,"Tests\\Unit\\Chat\\Models\\ChatTemplateTest::testShortNameMustBeUnique":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_creates_instance":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_hydrates_all_fields":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_handles_null_optional_fields":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_parses_dates_correctly":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_casts_numeric_fields":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_status_constants_exist":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_status_constants_match_expected_values":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_accepts_all_valid_statuses":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_canStaffSendFreetext_returns_false_by_default":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_canStaffSendFreetext_returns_false_when_explicitly_disabled":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_unlock_sets_staffCanFreetext_true":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_canStaffSendFreetext_returns_true_after_unlock":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_unlock_is_idempotent":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_canStaffSendFreetext_returns_true_when_already_set":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_close_updates_status_and_tracks_employee":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_close_sets_closedAt_timestamp":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_close_can_be_called_on_pending_thread":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_close_preserves_other_thread_data":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_reopen_changes_status_back_to_active":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_reopen_clears_closed_tracking":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_reopen_preserves_freetext_permission":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_reopen_on_archived_thread_sets_active":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_toArray_returns_expected_keys":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_toArray_returns_correct_values":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_toArray_handles_null_values":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_toArray_formats_dates_as_strings":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_toArray_staffCanFreetext_is_boolean":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_freetext_state_transition_from_pending_to_active":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_complete_thread_lifecycle":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_pending_thread_cannot_send_freetext":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_active_thread_after_customer_reply_can_send_freetext":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_setters_modify_values":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_setBuyId_accepts_null":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_timestamp_setters_accept_datetime":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_with_closed_thread_data":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_fromRow_with_archived_thread":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_typeNum_follows_expected_pattern":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_phone_format_preserved":0,"Tests\\Unit\\Chat\\Models\\ChatThreadTest::test_close_then_reopen_then_close_again":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_TransactionalMessage_NotBillable":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_InteractiveMessage_IsBillable":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_SegmentCountTracked":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testCostCalculation_UsesSegmentCount":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_BillingPeriodCalculated":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_InboundAlwaysInteractive":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testGetUsageReport_ReturnsAllMessages":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testGetUsageReport_FiltersByPeriod":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testGetUsageSummary_CalculatesTotals":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testGetUsageSummary_EmptyPeriod_ReturnsZeros":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_NullableFields":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_NullProviderMessageId":0,"Tests\\Unit\\Chat\\Services\\ChatBillingServiceTest::testTrackUsage_DifferentProviders":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_SameDayBuy_ReturnsEligible":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_YesterdayBuy_ReturnsIneligible":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_OpenThread_ReturnsEligibleDespiteOldBuy":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_OptedOutAll_ReturnsIneligible":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_OptedOutMarketing_ReturnsEligible":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanSendFreetext_CustomerHasReplied_ReturnsTrue":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanSendFreetext_NoCustomerReply_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanSendFreetext_ThreadClosed_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testGetEligibleCustomers_ReturnsTodaysBuys":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testGetEligibleCustomers_ExcludesOptedOut":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testGetEligibleCustomers_IncludesOpenThreads":0.001,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_EmptyPhone_ReturnsIneligible":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanMessageCustomer_InvalidCustomerId_ReturnsIneligible":0,"Tests\\Unit\\Chat\\Services\\ChatEligibilityServiceTest::testCanSendFreetext_ThreadArchived_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_10Digit_ReturnsUnchanged":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_11DigitWith1Prefix_RemovesPrefix":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_FormattedPhone_StripsFormatting":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_TooShort_ReturnsNull":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_TooLong_ReturnsNull":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_EmptyString_ReturnsNull":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testNormalizePhone_NonDigits_ReturnsNull":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testIsOptedOut_AllOptout_ReturnsTrue":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testIsOptedOut_MarketingOptout_ReturnsFalseForInteractive":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testIsOptedOut_MarketingOptout_ReturnsTrueForMarketing":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testIsOptedOut_NoOptout_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testIsOptedOut_NormalizesPhoneBeforeCheck":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_RoutesToStoreViaSytemBuys":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_NoMatch_ReturnsNull":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_OptedOutPhone_ReturnsOptoutInfo":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_InvalidPhone_ReturnsNull":0,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_NormalizesPhoneBeforeLookup":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_ReturnsCustomerInfo":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_ReturnsStoreObject":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_StoreNotFound_ReturnsNull":0.001,"Tests\\Unit\\Chat\\Services\\ChatMatchingServiceTest::testFindStoreByPhone_FallbackWhenCustomerNotInStoreDb":0.001,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CustomerNameWildcard_Replaces":0.021,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CustomerNameMissing_UsesFallback":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CustomerNameEmpty_UsesFallback":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CustomerFullName_CombinesFirstAndLast":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CustomerFullName_TrimsWhitespace":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_StoreWildcards_ReplaceAll":0.003,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_StorePhone_FormatsAsReadable":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testFormatPhone_AlreadyFormatted_ReturnsFormatted":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testFormatPhone_WithCountryCode_RemovesAndFormats":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testFormatPhone_InvalidLength_ReturnsAsIs":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_BuyWildcards_WhenBuyProvided":0.014,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_BuyWildcards_WhenNoBuy_StaysAsPlaceholder":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_MultipleWildcards_AllReplaced":0.003,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRenderString_WorksForPreview":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_Under160_Returns1":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_Exactly160_Returns1":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_Over160_Returns2":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_Over320_Returns3":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_UnicodeChars_Uses70CharLimit":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_UnicodeOver70_UsesMultipart":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_MixedGsmAndUnicode_UsesUnicode":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testCalculateSegmentCount_EmptyMessage_Returns0":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testGetAvailableWildcards_ReturnsAllWildcards":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testValidateTemplate_Exceeds320Chars_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testValidateTemplate_Within320Chars_ReturnsTrue":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testValidateTemplate_ReturnsSegmentCount":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testValidateTemplate_Empty_ReturnsFalse":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testValidateTemplate_UnknownWildcard_ReturnsWarning":0,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_StoreHours_ReturnsPlaceholder":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_CaseSensitive_DoesNotReplace":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_NoWildcards_ReturnsUnchanged":0.002,"Tests\\Unit\\Chat\\Services\\ChatTemplateServiceTest::testRender_DuplicateWildcards_AllReplaced":0.002,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::indexReturnsPageDataWithTodayReportWhenAvailable":0.002,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::indexReturnsNullWhenNoReportsExist":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::indexShowsMostRecentWhenTodayMissing":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getReportReturnsReportForValidDate":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getReportReturns404ForMissingReport":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getReportReturns400ForInvalidDateFormat":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getReportReturns400ForInvalidCalendarDate":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getCalendarReturnsDatesForCurrentMonth":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getCalendarReturnsEmptyArrayWhenNoReports":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getCalendarReturns400ForInvalidMonth":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::getCalendarReturns400ForInvalidYear":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::isValidDateFormatReturnsTrueForValidDate":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::isValidDateFormatReturnsFalseForInvalidDate":0,"Tests\\Unit\\CloseReport\\CloseReportDashboardControllerTest::indexReturnsRecentReportsLast7Days":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetEligibleRecipientsUsesUserStoreAssignments":0.001,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetEligibleRecipientsDoesNotUseUfUserStoregroup":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetEligibleRecipientsReturnsEmptyForNoMatches":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetEmailEligibleRecipientsUsesModernSchema":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetEmailEligibleRecipientsReturnsMatchingUsers":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetPushEligibleRecipientsUsesModernSchema":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetPushEligibleRecipientsIncludesDeviceTokenCheck":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testCountUsersWithPreferenceUsesModernSchema":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testCountUsersWithPreferenceThrowsOnInvalidType":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testBulkUpdatePreferenceUsesModernSchema":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testBulkUpdatePreferenceThrowsOnInvalidType":0.001,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetUserPreferencesReturnsPreferences":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetUserPreferencesReturnsNullForMissingUser":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testUpdatePreferencesReturnsTrueOnUpdate":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testUpdatePreferencesReturnsTrueWhenNothingToUpdate":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetDefaultPreferencesForNewUser":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testGetDefaultPreferencesForExistingUser":0,"Tests\\Unit\\CloseReport\\Repositories\\CloseReportPreferencesRepositoryTest::testConstantsReferenceCorrectTableNames":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testFromArrayConvertsDollarsToCents":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testFromStoredDataPreservesCentsValues":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testRoundTripPreservesValues":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testBuysDataFromStoredDataPreservesCents":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testReturnsDataFromStoredDataPreservesCents":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testCashDataFromStoredDataPreservesCents":0,"BuyerKiosk\\Tests\\Unit\\CloseReport\\ValueObjectsFromStoredDataTest::testLaborDataFromStoredDataPreservesCents":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_returnsDefaultsWhenTablesDoNotExist":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_calculatesActiveEventsCorrectly":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_calculatesCouponStatsCorrectly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_handlesMissingCouponsTable":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_handlesNullValuesFromDatabase":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_handlesDatabaseExceptionGracefully":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_handlesFetchReturningFalse":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_typeCastsValuesCorrectly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerStatsTest::test_getEventStatistics_returnsCompleteStatisticsStructure":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRendersAdminPageWithStoreData":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainIncludesEventStatistics":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesMissingTablesGracefully":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesDatabaseErrorsGracefully":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRedirectsToLoginWhenNotAuthenticated":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainChecksAuthenticationFirst":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRejectsWrongStoreGroup":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainChecksStoreGroupBeforePermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRequiresAdminPermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainChecksForUriStoreSettingsPermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainRequiresBothStoreGroupAndPermission":0.003,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testMainHandlesMissingStore":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testStatisticsAreCorrectlyCalculated":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashAdminPageControllerTest::testStatisticsDefaultToZero":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_getEvents_listsEventsWithFiltering":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_getEvents_returnsEmptyArrayWhenNoMatches":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_createEvent_createsEventWithValidation":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_createEvent_validatesRequiredFields":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_createEvent_propagatesServiceValidationErrors":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_updateEvent_updatesEventAndTriggersAbly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_updateEvent_doesNotTriggerAblyWhenStatusUnchanged":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_updateEvent_propagatesValidationErrors":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_deleteEvent_onlyAllowsDraftEvents":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_deleteEvent_rejectsNonDraftEvents":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_deleteEvent_handlesNotFound":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_lookupCoupon_validatesCode":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_lookupCoupon_returnsReasonForInvalidCodes":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_lookupCoupon_validatesEmptyCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_lookupCoupon_handlesExpiredCoupons":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_redeemCoupon_processesWorkspaceRedemption":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_redeemCoupon_validatesRequiredParameters":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_redeemCoupon_handlesServiceErrors":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_getEventReport_returnsStatistics":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_getEventReport_handlesEventNotFound":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_getEventReport_returnsZerosForNewEvent":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_allEndpoints_requireSessionAuthAndPermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_allEndpoints_requirePermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_authCheck_occursBeforeBusinessLogic":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_workspaceRedemption_usesActualEmployeeId":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_statusChange_triggersAblyNotification":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashApiControllerTest::test_responseStructure_isConsistent":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRendersWorkspacePageWithComebackCashActive":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesRequiredWorkspaceData":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesQueueAndCompletedBuysData":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainIncludesBreadcrumbData":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRedirectsToLoginWhenNotAuthenticated":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRequiresPermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainChecksForUriComebackCashPermission":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainRejectsWrongStoreGroup":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainChecksStoreGroupFirst":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPageControllerTest::testMainHandlesMissingStore":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatSideSettings_returnsInactiveWhenEventIsNull":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatSideSettings_formatsActiveEventCorrectly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatSideSettings_formatsTieredEventCorrectly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatCouponForResponse_returnsNullWhenCouponIsNull":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatCouponForResponse_formatsCouponCorrectly":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatCouponForResponse_usesCodeWhenDisplayCodeNotPresent":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatDateTime_returnsNullForNullInput":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatDateTime_formatsValidDateToISO8601":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_formatDateTime_handlesInvalidDateGracefully":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_returnsNullForEmptyString":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_formatsUSPhoneToE164":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_handles10DigitNumber":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_handles11DigitNumberStartingWith1":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_preservesPlusSignForInternational":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_sanitizePhone_returnsNullForTooFewDigits":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_requiresSide":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_requiresValidSide":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_requiresTransactionId":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_rejectsEmptyTransactionId":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_rejectsTransactionIdTooLong":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_requiresTransactionAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_rejectsNegativeAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_rejectsNonNumericAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_rejectsCustomerNameTooLong":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateIssueCouponRequest_acceptsValidRequest":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_requiresCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_rejectsEmptyCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_requiresTransactionId":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_requiresTransactionAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_rejectsNegativeTransactionAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_rejectsNonPositiveAmountToRedeem":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_rejectsNonNumericAmountToRedeem":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_acceptsValidRequest":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_validateRedemptionRequest_acceptsValidPartialRedemption":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapErrorCodeToHttpStatus_maps400Errors":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapErrorCodeToHttpStatus_maps404Errors":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapErrorCodeToHttpStatus_defaultsTo500":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps404ForInvalidCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps409ForAlreadyRedeemed":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps410ForExpired":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps422ForMinPurchaseNotMet":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps400ForInvalidAmount":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_maps500ForServerErrors":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_mapRedemptionErrorToHttpStatus_defaultsTo400":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_generateSettingsVersion_returnsMD5Hash":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_generateSettingsVersion_changesWhenEventsChange":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerHelperTest::test_generateSettingsVersion_consistentForSameEvents":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_returnsActiveEventsForBothSides":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_returnsNullForInactiveSides":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_returnsBothSidesNullWhenNoActiveEvents":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_requiresApiKeyAuthentication":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_rejectsInvalidApiKey":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_getSettings_rejectsEmptyApiKey":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_issuesCouponForQualifyingTransaction":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_worksWithoutCustomerInfo":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_returnsNullForBelowThresholdSalesSide":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_salesSideExactThresholdEarnsCoupon":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_alwaysIssuesForBuySideNoThreshold":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_buySideZeroAmountEarnsCoupon":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_handlesDuplicateTransactionIdempotent":0.001,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_duplicateDoesNotTriggerSms":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_validateCoupon_validatesCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_validateCoupon_returnsInvalidForNonexistentCode":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_validateCoupon_returnsInvalidForRedeemedCoupon":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_validateCoupon_returnsInvalidForExpiredCoupon":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_processesRedemption":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_supportsPartialRedemption":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_allEndpoints_returnProperErrorCodes":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_returnsNoActiveEventError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_returnsInvalidSideError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_returnsInvalidCodeError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_returnsAlreadyRedeemedError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_returnsExpiredError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_returnsMinPurchaseNotMetError":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_issueCoupon_requiresValidSideParameter":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_validateCoupon_normalizesCodeFormat":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_redeemCoupon_usesPosRedemptionMethod":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_apiKeyValidation_occursBeforeBusinessLogic":0,"Tests\\Unit\\ComebackCash\\Controllers\\ComebackCashPosApiControllerTest::test_responseStructure_isConsistentAcrossEndpoints":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_produces_8_character_codes":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_produces_unique_codes":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_excludes_ambiguous_characters":0.001,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_uses_only_uppercase_and_allowed_digits":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_true_for_active_and_not_expired":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_true_when_expires_at_is_far_future":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_false_for_redeemed_status":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_false_for_expired_status":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_false_for_voided_status":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_false_when_expired_by_date":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isRedeemable_returns_false_when_expired_even_if_active":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_returns_true_when_above_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_returns_true_when_exactly_at_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_returns_false_when_below_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_returns_false_when_not_redeemable":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_returns_false_when_expired":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_sets_status_to_redeemed_on_full_redemption":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_reduces_value_correctly":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_throws_exception_when_amount_exceeds_value":0.001,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_handles_small_amounts":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_reinstate_sets_status_to_active":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_reinstate_restores_original_value":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_reinstate_works_for_expired_coupons":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_fromRow_creates_coupon_with_all_fields":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_getDisplayCode_formats_with_hyphen":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markExpired_sets_status_to_expired":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markVoided_sets_status_to_voided":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_toArray_includes_all_fields":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_fromRow_handles_null_optional_fields":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isExpired_returns_true_for_past_date":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isExpired_returns_false_for_future_date":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_status_constants_are_defined":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_setters_modify_values":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_with_negligible_remaining_value":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_with_exact_threshold":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_multiple_partial_redemptions":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_with_zero_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isExpired_returns_false_for_future_moment":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_isExpired_with_one_second_ago":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_getDisplayCode_with_short_code":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_reinstate_can_be_called_multiple_times":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_toArray_reflects_current_state":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_produces_only_valid_characters":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_fromRow_defaults_status_to_active_when_missing":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markRedeemed_exact_zero_value":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_edge_case_just_below_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_canRedeemForAmount_edge_case_just_above_minimum":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_toArray_includes_computed_fields":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markVoided_can_void_any_status":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_markExpired_can_expire_active_or_redeemed":0,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_generateCode_statistical_distribution":0.001,"Tests\\Unit\\ComebackCash\\Models\\CouponTest::test_fromRow_preserves_all_data_types":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_true_when_status_active_and_within_date_range":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_true_when_status_active_with_no_dates":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_true_at_exact_start_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_true_at_exact_end_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_status_is_draft":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_status_is_ended":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_status_is_cancelled":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_status_is_scheduled":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_before_start_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isActive_returns_false_when_after_end_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_returns_true_within_redemption_window":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_returns_false_before_redemption_start":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_returns_false_after_redemption_end":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_returns_true_when_no_dates_set_and_event_active":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_returns_false_when_no_dates_set_and_event_inactive":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_with_only_start_date_set":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_isInRedemptionPeriod_with_only_end_date_set":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_buySide_returns_flat_amount_regardless_of_transaction":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_buySide_ignores_earning_type":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_buySide_with_zero_transaction_still_earns":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_buySide_returns_null_when_no_flat_amount":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_tiered_finds_correct_tier":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_tiered_at_tier_boundaries":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_tiered_returns_null_when_no_match":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_tiered_returns_null_when_no_tiers":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_tiered_handles_empty_tiers":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_percentage_calculates_correctly":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_percentage_rounds_to_two_decimals":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_percentage_returns_null_when_no_percentage":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_calculateReward_salesSide_flat_returns_flat_amount":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_toSettingsArray_returns_correct_structure":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_toSettingsArray_includes_isActive_computed_field":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_toSettingsArray_formats_dates_correctly":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_toSettingsArray_handles_null_dates":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_fromRow_hydrates_all_fields_from_database":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_fromRow_handles_null_optional_fields":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_fromRow_handles_invalid_json_in_tiers":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_fromRow_handles_invalid_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_toArray_returns_complete_representation":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_validate_requires_name":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_validate_buySide_requires_flat_amount":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_validate_buySide_cannot_use_tiered":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_validate_end_date_must_be_after_start_date":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_validate_returns_empty_for_valid_event":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_status_constants_are_defined":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_side_constants_are_defined":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_earning_type_constants_are_defined":0,"Tests\\Unit\\ComebackCash\\Models\\EventTest::test_refund_policy_constants_are_defined":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testFromRowHydratesAllAuditFieldsCorrectly":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testGetCouponReturnsAssociatedCouponWhenSet":0.002,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testGetCouponReturnsNullWhenNotSet":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testToArraySerializationIncludesAllFields":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testRedemptionMethodConstantsAreDefined":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testWasRedeemedViaReturnsCorrectResult":0,"Tests\\Unit\\ComebackCash\\Models\\RedemptionTest::testFromRowHandlesDecimalStringsFromDatabase":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testBroadcastSettingsUpdatePublishesCorrectPayload":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testBroadcastSettingsUpdateHandlesNoActiveEvents":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testAblyFailuresHandledGracefully":0.001,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testPayloadExcludesPII":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testBroadcastEventStarted":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testBroadcastEventEnded":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testDisabledAblySkipsBroadcasts":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testVersionFieldIsTimestamp":0,"Tests\\Unit\\ComebackCash\\Services\\ComebackCashAblyTest::testChannelUsesTypeNum":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_buySide_any_transaction_earns_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_buySide_zero_amount_transaction_earns_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_buySide_large_transaction_earns_same_flat_amount":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_salesSide_threshold_must_be_met":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_salesSide_exactly_at_threshold_earns_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_salesSide_higher_tier_earns_more":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_handles_duplicate_transaction_id_idempotent":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_duplicate_does_not_queue_second_sms":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_queues_sms_when_phone_provided":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_does_not_queue_sms_when_phone_missing":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_does_not_queue_sms_when_event_sms_disabled":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_validateCoupon_returns_correct_status_for_all_states":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_returns_null_when_no_active_event":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_returns_error_for_invalid_side":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_calculates_correct_value_from_event_tiers":0.002,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_calculates_correct_value_from_percentage":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_percentage_rounds_to_two_decimals":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_sets_correct_expiration_date":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_uses_default_expiration_when_not_configured":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_validateCoupon_returns_not_found_for_invalid_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getCouponByCode_returns_coupon_with_event_details":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getCouponByCode_returns_null_for_nonexistent_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_stores_customer_info_when_provided":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_handles_negative_transaction_amount":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_generates_unique_coupon_codes":0.003,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_validateCoupon_normalizes_code_format":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_findByCode_returns_coupon_model":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_findByCode_returns_null_for_nonexistent_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_findByCode_normalizes_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getMinimumPurchaseForEvent_returns_configured_minimum":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getMinimumPurchaseForEvent_returns_zero_when_not_set":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getMinimumPurchaseForEvent_returns_zero_for_nonexistent_event":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_updateCouponStatus_updates_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_updateCouponStatus_marks_as_redeemed":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_updateCouponStatus_returns_false_on_failure":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_with_employee_id":0.001,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_with_empty_phone_string_does_not_queue_sms":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_without_sms_queue_service":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_validateCoupon_with_hyphenated_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_getCouponByCode_normalizes_code":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_sales_side_with_zero_threshold":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_issueCoupon_percentage_calculates_correct_value":0,"Tests\\Unit\\ComebackCash\\Services\\CouponServiceTest::test_validateCoupon_returns_coupon_data_for_all_statuses":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validates_only_one_active_per_side_buy":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validates_only_one_active_per_side_sales":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_allows_different_sides_to_have_active_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_allows_draft_when_active_exists":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validates_earning_before_redemption_period":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_allows_earning_end_equals_redemption_start":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_allows_earning_before_redemption_start":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_buySide_event_creation_rejects_tiered_earning_type":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_buySide_event_creation_rejects_percentage_earning_type":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_buySide_event_creation_enforces_flat_earning_type_only":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_salesSide_event_allows_tiered_earning_type":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_salesSide_event_allows_percentage_earning_type":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_deactivates_conflicting_event_on_same_side":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_transitions_draft_to_active":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_transitions_scheduled_to_active":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_rejects_already_active_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_rejects_ended_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_rejects_cancelled_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_activateEvent_rejects_nonexistent_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEvent_returns_correct_event_by_side_buy":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEvent_returns_correct_event_by_side_sales":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEvent_returns_null_when_no_active_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEvent_rejects_invalid_side":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_deleteEvent_only_allows_draft_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_deleteEvent_rejects_active_events":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_deleteEvent_rejects_scheduled_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_deleteEvent_rejects_ended_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_deleteEvent_returns_false_for_nonexistent_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getEvent_returns_event_by_id":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getEvent_returns_null_for_nonexistent_id":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_listEvents_returns_array_of_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_listEvents_filters_by_status":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_listEvents_filters_by_side":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_updates_event_fields":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_validates_buySide_earning_type":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_endEvent_transitions_active_to_ended":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_endEvent_rejects_draft_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_transitions_draft_to_cancelled":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_rejects_active_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_scheduleEvent_transitions_draft_to_scheduled":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_scheduleEvent_requires_start_date":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_requires_name":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_requires_flat_amount_for_buySide":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_requires_tiers_for_tiered_earning":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_requires_percentage_for_percentage_earning":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_end_date_after_start_date":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_redemption_end_after_redemption_start":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_handles_null_optional_dates":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_listEvents_returns_empty_array_when_no_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEvents_returns_all_active_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_handles_race_condition_check":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_scheduleEvent_rejects_non_draft_events":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_can_cancel_scheduled_events":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_endEvent_rejects_nonexistent_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_rejects_nonexistent_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_scheduleEvent_rejects_nonexistent_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_with_no_changes_returns_existing":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_rejects_nonexistent_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_validateDateSequence_throws_when_earning_ends_after_redemption_starts":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_validateDateSequence_allows_earning_before_redemption":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_validateDateSequence_allows_earning_equals_redemption":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_validateDateSequence_handles_null_dates":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_getActiveEventBySide_is_alias_for_getActiveEvent":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_validation_requires_valid_side":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_rejects_ended_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_cancelEvent_rejects_already_cancelled_event":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_endEvent_rejects_scheduled_event":0.001,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_percentage_type_saves_earning_percentage":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_maps_couponValue_to_earningFlatAmount":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_maps_percentageMinPurchase_to_redemptionMinPurchase":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_flat_nulls_percentage_and_tiers":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_percentage_nulls_flat_and_tiers":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_tiered_nulls_flat_and_percentage":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_createEvent_tiered_preserves_minRedeem_values":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_type_change_clears_stale_fields":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_switch_to_tiered_clears_flat_and_percentage":0,"Tests\\Unit\\ComebackCash\\Services\\EventServiceTest::test_updateEvent_without_type_change_preserves_earning_fields":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_validates_coupon_status":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rejects_redeemed_status":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rejects_voided_status":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_validates_minimum_purchase":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_accepts_exact_minimum_purchase":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_accepts_above_minimum_purchase":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_creates_audit_record":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_audit_record_includes_all_fields":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_updates_coupon_status_to_redeemed":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_in_transaction_atomic":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rolls_back_on_insert_failure":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rolls_back_on_exception":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_for_invalid_code":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_for_empty_code":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_for_already_redeemed":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_already_redeemed_for_redeemed_status_with_residual_value":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_for_expired_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_for_expired_status":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_expired_for_just_expired_coupon":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_returns_error_when_min_purchase_not_met":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_min_purchase_error_includes_required_amount":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_supports_partial_redemption":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_partial_redemption_cannot_exceed_value":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_allows_second_partial_redemption":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_records_employee_id":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_tracks_different_employees":0.001,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_records_scan_redemption_method":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_records_manual_redemption_method":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_records_pos_redemption_method":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_getRedemptionsByEvent_returns_redemptions_for_event":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_getRedemptionsByEvent_returns_empty_array_when_none_exist":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_getRedemptionsByEvent_filters_by_date_range":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_success_response_format":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_error_response_format":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_does_not_require_customer_identity":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_accepts_coupon_expiring_later_today":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_handles_small_amounts":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rejects_zero_amount":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_rejects_negative_amount":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_trims_whitespace_from_code":0,"Tests\\Unit\\ComebackCash\\Services\\RedemptionServiceTest::test_redeemCoupon_code_lookup_is_case_insensitive":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testPublishAllowedUnderThreshold":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testPublishBlockedOverThreshold":0.001,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testChannelIsolation":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testFailOpenWithNullRedis":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testFailOpenWhenRedisThrows":0.001,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testKeyFormat":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testDefaultThreshold":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testExpireSetOnFirstIncrement":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testLogDedupUsesSetNx":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testActionTrackingStoresPerActionCounts":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testActionTrackingWithoutSource":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testNoActionTrackingWhenActionEmpty":0,"Tests\\Unit\\Core\\AblyPublishThrottleTest::testBackwardCompatibility":0,"Tests\\Unit\\Core\\BuyQueueTest::testCreateNewBuy":0,"Tests\\Unit\\Core\\Controllers\\AccountControllerLoginTest::testLoginRedirectsToRedirectWhenAlreadyLoggedInNonAjax":0.001,"Tests\\Unit\\Core\\Controllers\\AccountControllerLoginTest::testLoginRedirectsBackToLoginOnCsrfFailureNonAjax":0.001,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_homepage_template_exists":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_all_required_partials_exist":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_all_11_feature_partials_exist":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_all_feature_sections_have_posthog_attributes":0.001,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_hero_section_has_posthog_attribute":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_stats_section_has_posthog_attribute":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_video_section_has_posthog_attribute":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_mobile_showcase_has_posthog_attribute":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_hero_has_demo_trigger_button":0.001,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_modal_exists_with_id":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_has_close_trigger":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_has_all_required_fields":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_has_hidden_team_plus_interest_field":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_has_csrf_token_placeholder":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_form_has_nojs_fallback":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_nav_has_features_anchor":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_nav_has_pricing_anchor":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_nav_has_contact_anchor":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_has_features_section_id":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_pricing_partial_has_id":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_footer_has_contact_id":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_stats_section_has_six_stat_values":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_stats_values_have_data_stat_value_attribute":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_stats_has_fallback_values":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_includes_all_partials":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_includes_feature_partials":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_has_og_meta_tags":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_has_twitter_card_tags":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_nav_has_aria_label":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_nav_toggle_has_aria_expanded":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_demo_modal_has_dialog_role":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_hero_image_has_fetchpriority":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_feature_images_have_lazy_loading":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_preloads_hero_image":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_main_template_has_posthog_placeholder":0,"Tests\\Unit\\Core\\Controllers\\HomepageTemplateTest::test_hero_cta_has_posthog_event_attributes":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCreateTestBuyReturnsValidArray":0.001,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCreateTestBuyRespectsOverrides":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCreateTestBuyRowReturnsValidArray":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCreateTestBuySetReturnsMultipleScenarios":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testPendingBuyHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testInProgressBuyHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCompletedBuyHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testNewCustomerBuyHasFlag":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testReturningCustomerBuyHasCorrectFlags":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testRemoteCheckInBuyHasCorrectFlags":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testBuyWithSorterHasSorterData":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testLargeContainerBuyHasMoreContainers":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testTextedBuyHasSmsFlag":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testNoTextBuyHasNoSmsFlags":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testTimeValuesAreValidDates":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testDefaultValuesAreValid":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testStatusConstants":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testScenarioMethodsRespectOverrides":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testCompletedBuyTimeOrderingIsLogical":0,"Tests\\Unit\\Core\\Fixtures\\BuyFixturesTest::testInProgressBuyHasPartialProcessing":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testCreateTestCustomerReturnsValidArray":0.001,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testCreateTestCustomerRespectsOverrides":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testCreateTestCustomerRowReturnsValidArray":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testCreateTestCustomerSetReturnsMultipleScenarios":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testNewCustomerHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testReturningCustomerHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testVipCustomerHasCorrectState":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testOptedOutCustomerHasCorrectFlags":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testMinimalInfoCustomerHasMinimalData":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testReferralCustomerHasReferralCode":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testSmsOnlyCustomerHasSmsOnly":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testEmailOnlyCustomerHasEmailOnly":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testFullProfileCustomerHasAllFields":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testCustomerForStoreTypeGeneratesAppropriateCustomer":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testDefaultValuesAreValid":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testDateAddedIsValidDatetime":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testDriversLicenseIsUnique":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testScenarioMethodsRespectOverrides":0,"Tests\\Unit\\Core\\Fixtures\\CustomerFixturesTest::testAllScenarioMethodsReturnValidArrays":0,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreReturnsStoreInstance":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreRespectsOverrides":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetsCorrectStoreType":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreRowReturnsArray":0,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreRowRespectsOverrides":0,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetReturnsMultipleStoreTypes":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testCreateTestStoreSetHasCorrectTypeNums":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testTwilioStoreHasIntegrationEnabled":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testQuickbooksStoreHasIntegrationEnabled":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testWhenIWorkStoreHasIntegrationEnabled":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testHomebaseStoreHasIntegrationEnabled":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testFiveStarsStoreHasIntegrationEnabled":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testInactiveStoreHasCorrectFlags":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testProductionStoreHasCorrectFlags":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testIntegrationStoreMethodsRespectOverrides":0.001,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testDefaultValuesAreValid":0,"Tests\\Unit\\Core\\Fixtures\\StoreFixturesTest::testStoreTypeConstants":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_getStats_returns_fallback_values_when_no_db_connection":0.001,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_stats_have_correct_structure":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_stores_served_matches_expected":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_years_in_business_matches_expected":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_dollar_value_has_dollar_sign_and_suffix":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_buys_processed_has_millions_suffix":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_fallback_uptime_has_percentage_suffix":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_getStat_returns_fallback_for_known_key_when_no_db":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_getStat_returns_null_for_unknown_key_when_no_db":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_getStat_returns_each_expected_fallback":0.001,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_getStats_always_returns_all_six_stats":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_isStale_returns_true_when_no_db_connection":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_service_can_be_instantiated_without_arguments":0,"Tests\\Unit\\Core\\Services\\HomepageStatsServiceTest::test_service_accepts_null_db_connection":0,"Tests\\Unit\\Core\\StoreHoursTest::testGetDefaultOpenTimeReturnsDefaultValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testSetDefaultOpenTimeUpdatesValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testGetDefaultCloseTimeReturnsDefaultValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testSetDefaultCloseTimeUpdatesValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testGetHoursLastUpdatedReturnsNullInitially":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testSetHoursLastUpdatedUpdatesValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testGetHoursUpdatedByUserIdReturnsNullInitially":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testSetHoursUpdatedByUserIdUpdatesValue":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testCreateStoreFromRowArrayMapsHoursColumns":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testCreateStoreFromRowArrayHandlesNullHoursColumns":0.001,"Tests\\Unit\\Core\\StoreHoursTest::testHoursValuesAreStoredInHHMMFormat":0.001,"Tests\\Unit\\Core\\StoreTest::testConstructorWithoutIdCreatesEmptyStore":0.001,"Tests\\Unit\\Core\\StoreTest::testCreateStoreFromRowArraySetsAllProperties":0.001,"Tests\\Unit\\Core\\StoreTest::testGettersReturnCorrectValues":0.001,"Tests\\Unit\\Core\\StoreTest::testSettersModifyProperties":0.001,"Tests\\Unit\\Core\\StoreTest::testGetCompanyNameReturnsCorrectBrand":0.001,"Tests\\Unit\\Core\\StoreTest::testGetCompanyNameHandlesAllStoreTypes":0.001,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsHomebaseWhenEnabled":0.001,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsWhenIWorkWhenEnabled":0.001,"Tests\\Unit\\Core\\StoreTest::testGetEmployeeSourceReturnsHomegrownDefault":0.001,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsTrueWhenComplete":0.001,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenMissingToken":0.001,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsTrueWhenBothTokensPresent":0.001,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsTrueFromDbColumn":0.001,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsFalseFromDbColumn":0.001,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagReturnsDefaultWhenNotMapped":0.001,"Tests\\Unit\\Core\\StoreTest::testGetFeatureFlagDefaultsFalseWhenColumnNotSet":0.001,"Tests\\Unit\\Core\\StoreTest::testUpdateWiwTokenUpdatesDatabase":0.001,"Tests\\Unit\\Core\\StoreTest::testUpdateQbAccessTokenUpdatesDatabase":0.001,"Tests\\Unit\\Core\\StoreTest::testUpdateQbRefreshTokenUpdatesDatabase":0.001,"Tests\\Unit\\Core\\StoreTest::testUpdateCcTokensUpdatesDatabase":0.001,"Tests\\Unit\\Core\\StoreTest::testDisconnectCcClearsAllTokens":0.001,"Tests\\Unit\\Core\\StoreTest::testStoreType0ReturnsClothesMentor":0.001,"Tests\\Unit\\Core\\StoreTest::testStoreType1ReturnsPlatosCloset":0.001,"Tests\\Unit\\Core\\StoreTest::testStoreType2ReturnsOnceUponAChild":0.001,"Tests\\Unit\\Core\\StoreTest::testStoreType4ReturnsPlayItAgainSports":0.001,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenDisabled":0.001,"Tests\\Unit\\Core\\StoreTest::testIsQbConfiguredReturnsFalseWhenMissingRealmId":0.001,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsFalseWhenMissingRefreshToken":0.001,"Tests\\Unit\\Core\\StoreTest::testIsCcConnectedReturnsFalseWhenMissingAccessToken":0.001,"Tests\\Unit\\Core\\StoreTest::testStoreType3ReturnsStyleEncore":0.001,"Tests\\Unit\\Core\\StoreTest::testEmployeeSourcePriorityHomebaseOverWhenIWork":0.001,"Tests\\Unit\\Core\\StoreTest::testSmsConfigurationGettersAndSetters":0.001,"Tests\\Unit\\Core\\StoreTest::testOperationalSettingsGettersAndSetters":0.001,"Tests\\Unit\\Core\\StoreTest::testBillingConfigurationGettersAndSetters":0.001,"Tests\\Unit\\Core\\StoreTest::testShopifyIntegrationGettersAndSetters":0.001,"Tests\\Unit\\Core\\StoreTest::testFiveStarsIntegrationGettersAndSetters":0.001,"Tests\\Unit\\Core\\StoreTest::testReceiptCouponConfigGettersAndSetters":0.001,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::fromArray_createsLeadWithAllFields":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::fromArray_handlesNullOptionalFields":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::fromArray_handlesMissingOptionalFields":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::isContacted_returnsFalseWhenContactedAtIsNull":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::isContacted_returnsTrueWhenContactedAtIsSet":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::hasCompanyInfo_returnsFalseForMinimalLead":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::hasCompanyInfo_returnsTrueWhenCompanyNameSet":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::toArray_returnsAllFields":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::toArray_includesComputedFields":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::getSourceLabel_returnsDirectForNullSource":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::getSourceLabel_returnsSourceIdForQrCode":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::getAgeInDays_calculatesCorrectly":0,"Tests\\Unit\\Demo\\Models\\DemoLeadTest::getAgeInDays_returnsZeroForToday":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_fromArray_creates_session_with_all_properties":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_fromArray_handles_null_optional_values":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isMagicLinkExpired_returns_false_for_valid_link":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isMagicLinkExpired_returns_true_for_expired_link":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isMagicLinkExpired_returns_true_when_exactly_now":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isMagicLinkUsed_returns_false_when_not_used":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isMagicLinkUsed_returns_true_when_used":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isSessionExpired_returns_false_for_active_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isSessionExpired_returns_true_for_expired_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isSessionExpired_returns_true_when_not_activated":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isActive_returns_true_for_valid_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isActive_returns_false_for_expired_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_isActive_returns_false_for_non_activated_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getRemainingSeconds_returns_correct_value":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getRemainingSeconds_returns_zero_for_expired_session":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getRemainingSeconds_returns_zero_when_not_activated":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_hasValidConcept_returns_true_for_valid_concepts with data set \"Platos Closet\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_hasValidConcept_returns_true_for_valid_concepts with data set \"Once Upon A Child\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_hasValidConcept_returns_true_for_valid_concepts with data set \"Style Encore\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_hasValidConcept_returns_false_when_null":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getTourProgress_returns_decoded_json":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getTourProgress_returns_null_when_not_set":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getConceptDisplayName_returns_correct_name with data set \"Platos Closet\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getConceptDisplayName_returns_correct_name with data set \"Once Upon A Child\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getConceptDisplayName_returns_correct_name with data set \"Style Encore\"":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_getConceptDisplayName_returns_null_when_not_set":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_withToken_returns_session_with_token":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_withToken_does_not_modify_original":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_toArray_returns_all_data":0,"Tests\\Unit\\Demo\\Models\\DemoSessionTest::test_toArray_excludes_sensitive_token_hashes":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_can_create_insert_shadow_record":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_can_create_update_shadow_record":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_can_create_delete_shadow_record":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_is_delete_returns_true_for_delete_operation":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_is_delete_returns_false_for_non_delete_operations":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_is_insert_returns_true_for_insert_operation":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_is_update_returns_true_for_update_operation":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_apply_merges_data_with_base_record":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_apply_returns_shadow_data_for_insert":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_apply_returns_empty_for_delete":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_created_at_defaults_to_now":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_can_set_custom_created_at":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_to_array_returns_all_fields":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_from_array_creates_record":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_from_database_row_handles_json_data":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"insert is valid\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"update is valid\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"delete is valid\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"invalid operation\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"empty string\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_set_operation_validates_value with data set \"upsert is invalid\"":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_get_shadow_table_name_returns_correct_table":0,"Tests\\Unit\\Demo\\Models\\ShadowRecordTest::test_get_original_id_column_returns_correct_column":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::saveEvent_insertsEventToDatabase":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::saveEvent_encodesEventDataAsJson":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::saveEvent_returnsFalseOnFailure":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::getEventsBySession_returnsAllEventsForSession":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::getEventsBySession_returnsEmptyArrayForNoEvents":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::getEventsByType_filtersEventsByType":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::countByEventType_returnsCountsGroupedByType":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::deleteOlderThan_deletesExpiredEvents":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::getSessionEventSummary_returnsAggregatedSummary":0,"Tests\\Unit\\Demo\\Repositories\\AnalyticsRepositoryTest::getRecentEvents_returnsEventsInDescendingOrder":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::createFromSession_insertsNewLead":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::createFromSession_handlesOptionalFieldsAsNull":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::createFromSession_returnsFalseOnFailure":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::findById_returnsLeadWhenFound":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::findById_returnsNullWhenNotFound":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::findBySessionId_returnsLeadsForSession":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::markContacted_updatesContactedAt":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::markContacted_returnsFalseIfLeadNotFound":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::addNotes_updatesLeadNotes":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::getRecentLeads_returnsLeadsInDescendingOrder":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::getRecentLeads_limitsResults":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::getUncontactedLeads_returnsOnlyUncontacted":0,"Tests\\Unit\\Demo\\Repositories\\LeadRepositoryTest::countBySource_returnsCountsGroupedBySource":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_save_inserts_new_record":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_save_includes_original_id_for_update":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_returns_shadow_records":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_returns_empty_array_when_no_records":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_delete_by_session_id_removes_all_session_records":0.001,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_original_id_finds_shadow_record":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_original_id_returns_null_when_not_found":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"buys table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"customers table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"tasks table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"notes table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"events table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_get_by_session_uses_correct_shadow_table with data set \"schedules table\"":0,"Tests\\Unit\\Demo\\Repositories\\ShadowTableRepositoryTest::test_count_by_session_id_returns_total_records":0.001,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_savesEventToRepository":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_returnsFalseOnRepositoryFailure":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"demo_session_start\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"page_view\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"feature_interaction\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"tour_step_view\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"tour_step_complete\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"tour_abandon\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"cta_click\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"contact_form_submit\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"session_end\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_acceptsAllValidEventTypes with data set \"simulation_error\"":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::track_rejectsInvalidEventType":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackPageView_tracksWithCorrectEventType":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackTourStep_tracksViewEvent":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackTourStep_tracksCompleteEvent":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackTourStep_tracksAbandonEvent":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackFeatureInteraction_tracksWithFeatureName":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackCTA_tracksCtaClick":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::getSessionStats_returnsAggregatedStats":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::getSessionStats_returnsZerosForNoEvents":0,"BuyerKiosk\\Tests\\Unit\\Demo\\Services\\AnalyticsServiceTest::trackSessionEnd_includesSessionStats":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoMode_returns_true_when_env_is_1":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoMode_returns_true_when_env_is_true":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoMode_returns_false_when_env_not_set":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoMode_returns_false_when_env_is_0":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoMode_returns_false_when_env_is_false":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableAbly_returns_true_in_demo_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableAbly_returns_false_in_production_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableWhenIWork_returns_true_in_demo_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableWhenIWork_returns_false_in_production_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableExternalSMS_returns_true_in_demo_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_shouldDisableExternalSMS_returns_false_in_production_mode":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoStore_returns_true_for_demo_database":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoStore_returns_false_for_production_database":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoStore_returns_true_for_demo_typeNum":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_isDemoStore_returns_false_for_regular_typeNum":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getDemoConceptDatabase_returns_correct_database":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getDemoConceptDatabase_throws_for_invalid_concept":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getAllowedDemoIntegrations_includes_magic_link_email":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getAllowedDemoIntegrations_includes_analytics":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getAllowedDemoIntegrations_excludes_ably":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getAllowedDemoIntegrations_excludes_wheniwork":0,"Tests\\Unit\\Demo\\Services\\DemoModeHelperTest::test_getAllowedDemoIntegrations_excludes_sms":0,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSessionStatsReturnsActiveCount":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSessionStatsCountsByConcept":0.002,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSessionStatsHandlesNullConcept":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSimulationStatusRunningWhenRecentActivity":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSimulationStatusPausedWhenOlderActivity":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSimulationStatusErrorWhenNoRecentActivity":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetSimulationStatusErrorWhenNoActivity":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetLeadStatsReturnsUncontactedCount":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetLeadStatsIncludesSourceCounts":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetDashboardStatsReturnsAllSections":0.002,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testGetDashboardStatsGeneratedAtIsValidTimestamp":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testResetSimulationReturnsSuccessResponse":0.001,"Tests\\Unit\\Demo\\Services\\DemoOpsServiceTest::testStatusConstantsExist":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_isAllowed_first_request_returns_true":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_isAllowed_requests_within_limit_return_true":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_isAllowed_exceeding_limit_returns_false":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_isAllowed_different_ips_have_separate_limits":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRemainingAttempts_returns_max_for_new_ip":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRemainingAttempts_decrements_after_requests":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRemainingAttempts_returns_zero_when_exhausted":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRetryAfter_returns_zero_when_not_limited":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRetryAfter_returns_seconds_when_limited":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_getRetryAfter_considers_email_limit":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_record_increments_counter":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_reset_clears_rate_limit":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_custom_max_attempts_is_respected":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_ipv6_addresses_handled_correctly":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_ipv6_normalization":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_empty_ip_handled_gracefully":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_null_ip_handled_gracefully":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_isAllowedWithEmail_checks_both_limits":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_email_limit_separate_from_ip_limit":0,"Tests\\Unit\\Demo\\Services\\DemoRateLimiterTest::test_blocked_ip_blocks_regardless_of_email":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_returns_64_character_hex_token":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_stores_sha256_hash_not_plaintext":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_stores_email":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_sets_5_minute_expiration":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_stores_source_qr_id":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_handles_null_source_qr_id":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_createMagicLink_generates_unique_tokens":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_valid_token_returns_session":0.002,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_expired_token_returns_null":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_already_used_token_returns_null":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_nonexistent_token_returns_null":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_invalid_token_format_returns_null":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_activation_failure_returns_null":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_creates_new_session_token":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_marks_magic_link_as_used":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_sets_24_hour_session_expiration":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateSession_invalid_token_format_returns_null":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateSession_valid_token_returns_session":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateSession_expired_session_returns_null":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateSession_nonexistent_token_returns_null":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateSession_updates_last_accessed_at":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_setConcept_updates_session_with_valid_concept":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_setConcept_accepts_valid_concepts with data set \"Platos Closet\"":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_setConcept_accepts_valid_concepts with data set \"Once Upon A Child\"":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_setConcept_accepts_valid_concepts with data set \"Style Encore\"":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_setConcept_throws_exception_for_invalid_concept":0.001,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_getRemainingTime_returns_correct_seconds":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_getRemainingTime_returns_zero_for_expired_session":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_cleanupExpiredSessions_calls_repository":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_token_hashing_is_consistent":0,"Tests\\Unit\\Demo\\Services\\DemoSessionServiceTest::test_validateAndActivate_empty_token_returns_null":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_insert_creates_shadow_record":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_update_includes_original_id":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_delete_creates_shadow_record_with_empty_data":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_rejects_invalid_operation":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_requires_original_id_for_update":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_requires_original_id_for_delete":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_get_merged_data_returns_baseline_when_no_shadows":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_get_merged_data_includes_inserted_records":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_shadow_inserts_get_negative_ids":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_get_merged_data_applies_updates_to_baseline":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_update_merges_with_baseline_preserving_unmodified_fields":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_get_merged_data_excludes_deleted_records":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_get_merged_data_handles_mixed_operations":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_multiple_updates_to_same_record_applies_last":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_delete_session_data_purges_all_shadow_records":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_validates_allowed_table_names":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"buys\"":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"customers\"":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"tasks\"":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"notes\"":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"events\"":0,"Tests\\Unit\\Demo\\Services\\ShadowTableServiceTest::test_record_write_accepts_valid_table_names with data set \"schedules\"":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getProgress_returnsNullForNewSession":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getProgress_returnsExistingProgress":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::updateProgress_savesNewProgress":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::updateProgress_marksStepCompleted":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::updateProgress_advancesToNextStep":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::updateProgress_rejects_invalid_section":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::updateProgress_rejects_invalid_step":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getNextStep_returnsFirstStepForNewSession":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getNextStep_returnsNextStepInSection":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getNextStep_returnsFirstStepOfNextSection":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getNextStep_returnsNullWhenTourComplete":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::isTourComplete_returnsFalseForNewSession":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::isTourComplete_returnsFalseForPartialProgress":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::isTourComplete_returnsTrueWhenAllSectionsCompleted":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::skipTour_marksTourAsSkipped":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getSections_returns6Sections":0,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getStepsForSection_returns3to5Steps":0.001,"Tests\\Unit\\Demo\\Services\\TourServiceTest::getStepsForSection_returnsEmptyForInvalidSection":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_model_can_be_created_with_valid_data":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_tag_validation_rejects_empty_string":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_tag_validation_rejects_whitespace_only":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_tag_validation_rejects_over_50_characters":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_tag_validation_accepts_exactly_50_characters":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_tag_validation_accepts_single_character":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_trims_whitespace_from_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_toArray_returns_all_fields":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_handles_special_characters_in_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_slideTag_normalizes_case_for_comparison":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_successfully_adds_tag_to_slide":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_returns_existing_tag_for_duplicate":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_with_duplicate_is_case_insensitive":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_validates_slideId_is_positive_integer":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_validates_tag_is_not_empty":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_validates_tag_length":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_sanitizes_html_from_input":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_multiple_tags_on_same_slide_allowed":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeTag_successfully_removes_existing_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeTag_handles_nonexistent_tag_gracefully":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeTag_is_case_insensitive":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeTag_validates_slideId":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTagsForSlide_returns_array_of_tags":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTagsForSlide_returns_empty_array_for_untagged_slide":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTagsForSlide_returns_tags_sorted_alphabetically":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_returns_matching_tags_for_autocomplete":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_returns_empty_for_no_matches":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_returns_all_unique_tags_for_empty_query":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_is_case_insensitive":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_limits_results_for_performance":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_searchTags_orders_by_usage_frequency":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_returns_slides_matching_single_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_returns_union_for_multiple_tags":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_returns_empty_for_nonexistent_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_handles_empty_tags_array":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_deduplicates_results":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getSlidesByTags_is_case_insensitive":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_service_works_with_store_slideType":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_service_works_with_corp_slideType":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_service_works_with_hb_slideType":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_service_rejects_invalid_slideType":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTableNameForSlideType_returns_correct_table":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_corp_slides_can_have_preassigned_tags":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_api_validates_slideId_is_integer":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_api_accepts_numeric_string_slideId":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_api_sanitizes_tag_strips_html_entities":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_api_rejects_null_tag":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_api_rejects_null_slideType":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeAllTagsForSlide_removes_all_tags":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_removeAllTagsForSlide_handles_slide_with_no_tags":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTags_bulk_adds_multiple_tags_at_once":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTags_bulk_handles_partial_duplicates":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_setTags_replaces_all_tags_for_slide":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_addTag_handles_database_error_gracefully":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTagsForSlide_handles_database_error_gracefully":0.001,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getTagStatistics_returns_usage_counts":0,"Tests\\Unit\\DigitalSign\\SlideTagTest::test_getUnusedTags_returns_tags_with_zero_slides":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_uses_where_in_query":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_sends_batch_ably_event":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_ably_event_includes_buy_ids_array":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_does_not_loop_individual_ably_events":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_sync_checkout_uses_where_in_query":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_sync_checkout_sends_batch_ably_event":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_sync_checkout_does_not_loop_individual_ably_events":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_single_checkout_calls_rebuild_completed_cache":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_calls_rebuild_completed_cache":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_sync_checkout_calls_rebuild_completed_cache":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_batch_checkout_survey_sms_has_try_catch":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_sync_checkout_survey_sms_has_try_catch":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_placeholder_generation_for_batch_sizes":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_array_values_normalizes_keys_for_pdo":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_queue_ably_has_checkout_handler":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_queue_ably_has_batch_checkout_handler":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_queue_ably_batch_handler_uses_buy_ids_array":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_queue_ably_batch_handler_refreshes_completed_grid":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_current_queue_has_batch_checkout_case":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_current_queue_batch_checkout_calls_completed_slide":0,"Tests\\Unit\\Drs\\DrsCheckoutBatchTest::test_single_checkout_still_sends_individual_event":0,"Tests\\Unit\\DrsMetadataTest::testBrandsTableHasConceptColumnWithPcDefault":0,"Tests\\Unit\\DrsMetadataTest::testCompositePrimaryKeyOnAllTables":0,"Tests\\Unit\\DrsMetadataTest::testConceptIsolationInserts":0,"Tests\\Unit\\DrsMetadataTest::testExistingBrandDataPreserved":0,"Tests\\Unit\\DrsMetadataTest::testSubcategoriesRetainsCatIDColumn":0,"Tests\\Unit\\DrsMetadataTest::testAllTablesHaveConceptColumn":0,"Tests\\Unit\\DrsMetadataTest::testConstructorRejectsInvalidConcept":0,"Tests\\Unit\\DrsMetadataTest::testConstructorRejectsInvalidTable":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleCreatesNewRecords":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleUpdatesExistingRecords":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsEmptyNames":0,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesSucceedsWithValidCatIDs":0,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesRejectsInvalidCatIDs":0,"Tests\\Unit\\DrsMetadataTest::testConceptIsolationInImporter":0,"Tests\\Unit\\DrsMetadataTest::testIdempotentReimport":0,"Tests\\Unit\\DrsMetadataTest::testPreTransactionValidationPreventsInserts":0,"Tests\\Unit\\DrsMetadataTest::testTransactionRollbackOnDbError":0,"Tests\\Unit\\DrsMetadataTest::testGetConceptFromTypeNumReturnsConcept":0,"Tests\\Unit\\DrsMetadataTest::testDrsMetadataRouteFileExists":0,"Tests\\Unit\\DrsMetadataTest::testDrsPhpRequiresMetadataFile":0,"Tests\\Unit\\DrsMetadataTest::testRouteConceptValidationMatchesModel":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsFloatIds":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsScientificNotationIds":0,"Tests\\Unit\\DrsMetadataTest::testImportSubcategoriesRejectsNonNumericCatID":0,"Tests\\Unit\\DrsMetadataTest::testImportSimpleRejectsArrayNames":0,"Tests\\Unit\\DrsMetadataTest::testAllFiveTablesHaveConstants":0,"Tests\\Unit\\DrsMetadataTest::testIntegrationFullBrandImportFlow":0,"Tests\\Unit\\DrsMetadataTest::testIntegrationCategoriesThenSubcategories":0,"Tests\\Unit\\DrsMetadataTest::testIntegrationTwoConceptIsolation":0,"Tests\\Unit\\DrsMetadataTest::testIntegrationIdempotency":0,"Tests\\Unit\\DrsMetadataTest::testE2eBrandImportAndConceptDerivation":0,"Tests\\Unit\\DrsMetadataTest::testMigrationPreservedAllBrands":0,"Tests\\Unit\\DrsMetadataTest::testPerformanceLargePayload":0,"Tests\\Unit\\DrsMetadataTest::testSecurityInvalidConceptRejected":0,"Tests\\Unit\\DrsMetadataTest::testAllFiveTableImportsWork":0,"Tests\\Unit\\DrsMetadataTest::testArchitectureCompliance":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromArray_creates_employee_with_all_fields":0.001,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromArray_handles_minimal_data":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromRow_parses_avatarOverride_correctly":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromRow_parses_clockPin":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::hasClockPin_returns_false_for_empty_string":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::verifyClockPin_returns_true_for_matching_pin":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::verifyClockPin_returns_false_for_non_matching_pin":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::verifyClockPin_returns_false_when_no_pin_set":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::verifyClockPin_returns_false_for_empty_stored_pin":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::roleColor_returns_null_for_unknown_role":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::isOnLeave_returns_true_when_leave_has_no_end_date":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::isOnLeave_returns_false_when_leave_starts_in_future":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::toArray_includes_hasClockPin":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::toArray_includes_avatarOverride":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromArray_with_null_hourlyRate":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromRow_with_null_hourlyRate":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromArray_converts_string_hourlyRate_to_float":0,"Tests\\Unit\\Employee\\EmployeeAdditionalTest::fromRow_converts_string_hourlyRate_to_float":0,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::setEmployeePhoto_updates_photo_in_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::getEmployeePhotoUrl_returns_photo_from_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::getEmployeePhotoUrl_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::clearEmployeePhoto_clears_photo_in_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::setEmployeePhoto_returns_false_when_user_not_found":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::getEmployeePhotoUrl_returns_null_when_user_not_resolved":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPhotoTest::clearEmployeePhoto_returns_false_when_user_not_resolved":0,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_throws_exception_when_employee_not_found":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_throws_exception_for_invalid_pin_format":0,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_throws_exception_for_pin_too_long":0,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_throws_exception_for_non_numeric_pin":0,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_accepts_valid_4_digit_pin":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_accepts_valid_6_digit_pin":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_accepts_null_to_clear_pin":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePin_accepts_empty_string_to_clear_pin":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::setEmployeePhoto_updates_photo_in_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::getEmployeePhotoUrl_returns_photo_from_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::getEmployeePhotoUrl_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\EmployeeManagerPinTest::clearEmployeePhoto_clears_photo_in_central_users":0.001,"Tests\\Unit\\Employee\\EmployeeManagerTest::getEmployeesForSelector_returns_formatted_array":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::getActiveEmployees_delegates_to_provider":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::getEmployee_delegates_to_provider":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::createEmployee_throws_exception_when_provider_does_not_support_create":0.001,"Tests\\Unit\\Employee\\EmployeeManagerTest::createEmployee_delegates_when_provider_supports_create":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::updateEmployee_delegates_to_provider":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::deactivateEmployee_delegates_to_provider":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::syncFromProvider_throws_exception_when_provider_does_not_support_sync":0,"Tests\\Unit\\Employee\\EmployeeManagerTest::syncFromProvider_delegates_when_provider_supports_sync":0,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_creates_assignment_when_not_exists":0.001,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_updates_existing_assignment":0.001,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_clears_pin_with_null":0.001,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_clears_pin_with_empty_string":0.001,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_accepts_5_digit_pin":0.001,"Tests\\Unit\\Employee\\EmployeeManagerUnifiedPinTest::setEmployeePin_throws_when_user_cannot_be_resolved":0.001,"Tests\\Unit\\Employee\\EmployeeTest::test_fromRow_creates_employee_with_all_fields":0,"Tests\\Unit\\Employee\\EmployeeTest::test_getFullName_combines_first_and_last":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isOnLeave_returns_true_during_leave":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isOnLeave_returns_false_before_leave":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isOnLeave_returns_false_after_leave":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isOnLeave_returns_false_when_no_leave_dates":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isFromExternalProvider_true_for_wheniwork":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isFromExternalProvider_true_for_homebase":0,"Tests\\Unit\\Employee\\EmployeeTest::test_isFromExternalProvider_false_for_homegrown":0,"Tests\\Unit\\Employee\\EmployeeTest::test_toArray_includes_all_fields":0,"Tests\\Unit\\Employee\\EmployeeTest::test_mappedRole_and_roleColor_from_database":0,"Tests\\Unit\\Employee\\EmployeeTest::test_roleColor_uses_explicit_color_when_set":0,"Tests\\Unit\\Employee\\EmployeeTest::test_roleColor_computes_default_for_all_roles":0,"Tests\\Unit\\Employee\\EmployeeTest::test_roleColor_returns_null_when_no_mappedRole":0,"Tests\\Unit\\Employee\\EmployeeTest::test_toArray_includes_mappedRole_and_roleColor":0,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_handles_empty_user_updates":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_handles_empty_assignment_updates":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::syncEmployees_returns_error_when_homebase_not_configured":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::getActiveEmployees_handles_cache_exception_gracefully":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_with_only_user_field_updates":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_with_only_assignment_field_updates":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_can_update_all_user_fields_at_once":0.001,"Tests\\Unit\\Employee\\HomebaseProviderCacheTest::updateEmployee_can_update_all_assignment_fields_at_once":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_emergencyContactPhone_field_only":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_hireDate_field_only":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_clockPin_field_only":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::getActiveEmployees_returns_multiple_employees_in_unified_mode":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_handles_no_data_changes":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::getEmployee_with_all_fields_populated":0.001,"Tests\\Unit\\Employee\\HomebaseProviderEdgeCasesTest::updateEmployee_with_multiple_emergencyContact_fields":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::supportsCreate_returns_false":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::supportsSync_returns_true":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::createEmployee_throws_exception":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::getEmployee_returns_employee_from_unified_tables":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::getEmployee_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::updateEmployee_updates_user_and_assignment_fields":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_deactivates_store_assignment":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_accepts_null_reason":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::syncEmployees_returns_error_when_homebase_not_configured":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::syncEmployees_returns_error_when_store_has_no_api_key":0.001,"Tests\\Unit\\Employee\\HomebaseProviderTest::deactivateEmployee_returns_false_when_not_found":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_fetches_from_database_on_cache_miss":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_cached_data_on_hit":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_empty_array_when_no_employees":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getEmployee_unified_returns_employee_from_central_database":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getEmployee_unified_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::updateEmployee_unified_updates_user_table":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::deactivateEmployee_unified_returns_false_when_assignment_missing":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::updateEmployee_unified_updates_assignment_fields":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::getActiveEmployees_caches_results_for_reuse":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedCoverageTest::setCache_allows_injection_of_cache_client":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getEmployee_returns_employee_in_unified_mode":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getEmployee_returns_null_when_not_found_unified":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_updates_user_fields_in_unified_mode":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::deactivateEmployee_returns_false_when_assignment_not_found_unified":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::getActiveEmployees_returns_empty_array_when_no_employees_unified":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::constructor_connects_to_central_database_when_not_provided":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_updates_assignment_fields_in_unified_mode":0.001,"Tests\\Unit\\Employee\\HomebaseProviderUnifiedTest::updateEmployee_handles_mixed_user_and_assignment_fields":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::supportsCreate_returns_true":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::supportsSync_returns_false":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::syncEmployees_throws_exception":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::getActiveEmployees_returns_all_active_employees":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::getEmployee_returns_employee_by_id":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::getEmployee_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::createEmployee_inserts_into_users_and_store_assignments":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::createEmployee_uses_defaults_for_optional_fields":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_updates_user_fields_in_central_db":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_ignores_disallowed_fields":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_returns_employee_when_no_valid_updates":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::deactivateEmployee_deactivates_store_assignment":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::deactivateEmployee_accepts_null_reason":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::deactivateEmployee_returns_false_when_not_found":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_can_update_emergency_contact":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_can_update_drs_employee_id_via_store_assignment":0.001,"Tests\\Unit\\Employee\\HomegrownProviderTest::updateEmployee_throws_when_employee_not_found":0.001,"Tests\\Unit\\Employee\\SyncResultTest::test_isSuccess_returns_true_when_no_errors":0,"Tests\\Unit\\Employee\\SyncResultTest::test_isSuccess_returns_false_when_has_errors":0,"Tests\\Unit\\Employee\\SyncResultTest::test_toArray_includes_all_counts":0,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::supportsCreate_returns_false":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::supportsSync_returns_true":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::createEmployee_throws_exception":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::getEmployee_returns_employee_from_unified_tables":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::getEmployee_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::updateEmployee_updates_user_and_assignment_fields":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderBasicTest::deactivateEmployee_deactivates_store_assignment":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_fetches_from_database_on_cache_miss":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_cached_data_on_hit":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_unified_returns_empty_array_when_no_employees":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_handles_corrupted_cache_gracefully":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getEmployee_unified_returns_employee_from_central_database":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getEmployee_unified_returns_null_when_not_found":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::updateEmployee_unified_updates_user_table_fields":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::updateEmployee_unified_updates_store_assignment_fields":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::deactivateEmployee_unified_returns_false_when_assignment_missing":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::deactivateEmployee_unified_deactivates_store_assignment":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::getActiveEmployees_caches_results_for_reuse":0.001,"Tests\\Unit\\Employee\\WhenIWorkProviderUnifiedCoverageTest::setCache_allows_injection_of_cache_client":0.001,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_adds_positive_days":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_subtracts_negative_days":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_handles_zero_days":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_crosses_month_boundary":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_crosses_year_boundary":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_calculateDateFromRelative_does_not_modify_original":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getBuildUpStartDate_calculates_correctly":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getBuildUpStartDate_with_zero_buildup":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getBuildUpStartDate_with_long_buildup":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getWindDownEndDate_calculates_correctly":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getWindDownEndDate_with_zero_winddown":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getType_returns_adapter_type":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getDefaultConfig_returns_defaults":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_validateConfig_returns_empty_for_valid_config":0,"Tests\\Unit\\EventManagement\\Adapters\\AbstractAdapterTest::test_getStatus_returns_array":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getType_returns_floorplan":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_create_links_layout_to_event":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_create_throws_when_layoutId_missing":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_create_throws_when_layout_not_found":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_create_throws_when_layout_already_linked":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_create_throws_when_layout_not_wanted_type":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_syncDates_updates_activation_date":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_syncDates_skips_when_date_unchanged":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_syncDates_throws_when_layout_not_found":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_deactivate_clears_event_link":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_deactivate_handles_missing_layout_gracefully":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_delete_unlinks_layout":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_delete_handles_missing_layout_gracefully":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getStatus_returns_layout_info":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getStatus_returns_error_when_layout_missing":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_passes_with_valid_config":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_without_layoutId":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_with_non_numeric_layoutId":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_when_layout_not_found":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_for_current_type_layout":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_for_already_linked_layout":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_with_invalid_autoGenerateTasks":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_with_negative_daysBeforeActivation":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_validateConfig_fails_with_excessive_daysBeforeActivation":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getDefaultConfig_returns_expected_defaults":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getAvailableLayouts_returns_unlinked_wanted_layouts":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getLayoutsScheduledForDate_returns_scheduled_layouts":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_getLayoutsScheduledForDate_defaults_to_today":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_activateScheduledLayout_returns_false_for_non_scheduled":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_activateScheduledLayout_returns_false_for_missing_layout":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_activate_logs_activation_without_task_generation":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_activate_throws_when_layout_not_found":0.001,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_eventIntegration_includes_floorplan_type":0,"Tests\\Unit\\EventManagement\\Adapters\\FloorPlanAdapterTest::test_eventIntegration_floorplan_type_has_label":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_stores_integration_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_stores_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_stores_foreign_id":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_handles_null_foreign_id":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_message_is_preserved":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_createFailed_factory_method":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_syncDatesFailed_factory_method":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_activateFailed_factory_method":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_deactivateFailed_factory_method":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_deleteFailed_factory_method":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_getContext_returns_array":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_getContext_default_empty_array":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_preserves_previous_exception":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_toArray_returns_complete_structure":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_getDetailedMessage_includes_all_info":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_backstock_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_sms_blast_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_sms_trigger_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_signage_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_comeback_cash_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_task_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_note_type":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_create_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_syncDates_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_activate_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_deactivate_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_delete_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_getStatus_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\IntegrationExceptionTest::test_exception_accepts_validateConfig_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_create_throws_integration_exception_for_sms_blast":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_create_throws_integration_exception_for_sms_trigger":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_create_exception_has_correct_operation":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_validate_config_returns_deprecation_error_for_blast":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_validate_config_returns_deprecation_error_for_trigger":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_validate_config_returns_deprecation_error_for_empty_config":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_get_status_returns_deprecated_status_for_sms_blast":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_get_status_returns_deprecated_status_for_sms_trigger":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_get_status_includes_deprecation_message":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_sync_dates_does_nothing_for_deprecated_integration":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_activate_does_nothing_for_deprecated_integration":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_deactivate_does_nothing_for_deprecated_integration":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_delete_does_nothing_for_deprecated_integration":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_sms_blast_type_constant_still_exists":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_sms_trigger_type_constant_still_exists":0,"Tests\\Unit\\EventManagement\\Adapters\\SmsAdapterDeprecationTest::test_sms_types_still_in_valid_types_for_backward_compatibility":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_create_returns_integration_results_array_with_success_entries":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_create_returns_failure_entries_with_error_messages":0.001,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_create_returns_summary_counts":0.001,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_create_empty_integrations_returns_empty_results":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_disabled_integrations_are_not_processed":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_unknown_integration_type_is_skipped":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_all_integrations_failing_returns_proper_structure":0.001,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_integration_result_entry_field_types":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerIntegrationResultsTest::test_summary_counts_are_integers":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_create_returns_integration_results_for_success":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_create_returns_failure_entries_with_error_messages":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_create_returns_summary_counts":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_create_with_no_integrations_returns_empty_results":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_create_with_all_integrations_disabled_returns_empty_results":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_integration_result_types_use_correct_constants":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_failed_integrations_include_exception_message":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_all_integrations_failing_still_creates_event":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_response_structure_consistency":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_unauthenticated_request_is_rejected":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_request_without_permission_is_rejected":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_integration_service_not_called_without_auth":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_succeeds_after_initial_failure":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_returns_failure_with_error_message":0.001,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_max_retries_exceeded_returns_error":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_uses_existing_config_if_none_provided":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_uses_provided_config_when_given":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_increments_count_on_each_attempt":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_requires_authentication":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_requires_permission":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_returns_404_for_nonexistent_event":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_validates_integration_type":0,"Tests\\Unit\\EventManagement\\Controllers\\EventApiControllerTest::test_retry_counts_are_tracked_independently":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_returns_upcoming_before_buildup":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_returns_build_up_during_buildup_period":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_returns_active_during_event_dates":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_returns_wind_down_after_end_before_winddown_ends":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_returns_completed_after_winddown_ends":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_at_exact_boundaries":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_with_zero_buildup_days":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_calculatePhase_with_zero_winddown_days":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_draft_to_scheduled_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_draft_to_cancelled_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_draft_to_active_returns_false":0.001,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_scheduled_to_active_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_active_to_completed_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_active_to_cancelled_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_completed_to_archived_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_archived_returns_false_for_any_status":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_scheduled_to_cancelled_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_cancelled_to_archived_returns_true":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_completed_to_draft_returns_false":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_canTransitionTo_same_status_returns_false":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_getDateRange_returns_correct_dates_with_buildup_and_winddown":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_getDateRange_with_zero_buildup":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_getDateRange_with_zero_winddown":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_getDateRange_calculates_dates_correctly":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_hydrates_all_fields":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_handles_null_optional_fields":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_parses_dates_correctly":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_handles_enum_values":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_handles_invalid_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_casts_numeric_fields":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_requires_name":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_requires_valid_event_type":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_end_date_must_be_after_start_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_year_must_match_start_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_returns_empty_for_valid_event":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_buildup_days_must_be_non_negative":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_winddown_days_must_be_non_negative":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_name_length_limit":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_toArray_returns_complete_representation":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_toArray_formats_dates_correctly":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_toArray_handles_null_values":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_constants_are_defined":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_isInPhase_returns_true_when_matching":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_isInPhase_returns_false_when_not_matching":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_isInPhase_uses_current_time_when_no_date_provided":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_event_with_same_start_and_end_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_fromRow_with_foreign_key_references":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_requires_start_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_validate_requires_end_date":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_color_validation_accepts_valid_hex":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_isRecurring_defaults_to_false":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_isRecurring_true_when_set":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_archived_event_stores_previous_status":0,"Tests\\Unit\\EventManagement\\Models\\EventTest::test_getDateRange_returns_datetime_objects":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_new_integrations_show_new_badge_when_created_less_than_24_hours_ago":0.001,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_integration_at_exactly_24_hours_is_not_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_integration_created_one_minute_ago_is_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_integration_created_23_hours_59_minutes_ago_is_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_new_badge_not_shown_after_24_hours":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_failed_integrations_show_setup_required_badge":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_setup_required_takes_precedence_over_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_old_failed_integration_shows_setup_required":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_failed_integration_provides_error_context":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_status_badge_colors_match_expected_values with data set \"pending_shows_yellow_orange\"":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_status_badge_colors_match_expected_values with data set \"active_shows_green\"":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_status_badge_colors_match_expected_values with data set \"completed_shows_gray\"":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_status_badge_colors_match_expected_values with data set \"failed_shows_red\"":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_unknown_status_defaults_to_gray_badge":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_badge_priority_status_only_for_old_active_integration":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_new_pending_integration_shows_new_and_pending_badges":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_completed_integration_shows_new_badge_if_recent":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_get_badge_types_returns_badges_in_priority_order":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_to_array_includes_all_badge_information":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_display_label_for_pending_status":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_display_label_for_failed_shows_setup_required":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_to_array_is_json_serializable":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_null_created_at_is_treated_as_not_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_empty_string_created_at_is_treated_as_not_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_invalid_date_format_is_treated_as_not_new":0.001,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_future_created_at_is_treated_as_new":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_all_integration_types_are_supported":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_badge_type_constants_are_defined":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_new_threshold_constant_is_defined":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationBadgeTest::test_from_integration_factory_returns_integration_badge_instance":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_constructor_sets_all_properties":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_constructor_with_error":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_constructor_with_optional_null_values":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_getters_return_correct_types":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_created_factory_returns_correct_instance":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_failed_factory_returns_correct_instance":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_skipped_factory_returns_correct_instance":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_skipped_factory_with_reason":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_created_factory_with_zero_foreign_id":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_failed_factory_with_empty_error":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_isCreated_returns_true_for_created_status":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_isFailed_returns_true_for_failed_status":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_isSkipped_returns_true_for_skipped_status":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_status_methods_are_mutually_exclusive":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_status_methods_work_with_constructor":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_unknown_status_returns_false_for_all_methods":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_created_result":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_failed_result":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_skipped_result_without_reason":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_skipped_result_with_reason":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_toArray_is_json_serializable":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_status_constants_are_defined":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_factory_methods_use_constants":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_all_integration_types_work":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_result_is_immutable":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_special_characters_in_error_message":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_unicode_in_error_message":0,"Tests\\Unit\\EventManagement\\Models\\IntegrationResultTest::test_very_long_error_message":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testProcessStoreWithNoEvents":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testEventTransitionsFromUpcomingToBuildUp":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testEventTransitionsFromBuildUpToActive":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testEventTransitionsFromActiveToWindDown":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testEventTransitionsFromWindDownToCompleted":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testPendingIntegrationsActivatedOnActiveTransition":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testIntegrationActivationFailuresAreCaptured":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testPhaseTransitionLogsToAudit":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testErrorInOneEventDoesNotStopOthers":0.001,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testExceptionsDuringProcessingAreCaptured":0.001,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testGetPhaseTransitionsReturnsChangedEvents":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testGetPhaseTransitionsReturnsEmptyBeforeProcessing":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testNoChangeWhenPhaseAlreadyCurrent":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testCompletedEventsAreNotSelected":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testProcessEventDirectly":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testProcessEventNoChangeWhenPhasesMatch":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testFallbackActivationWithoutIntegrationService":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testGetErrorsReturnsEmptyAfterSuccessfulProcessing":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testCheckForUpdatesIdentifiesOutdatedPhases":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testCheckForUpdatesReturnsFalseWhenPhasesAreCurrent":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testProcessingMultipleEventsWithDifferentPhases":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testEventWithNullDatesUsesStoredPhase":0,"Tests\\Unit\\EventManagement\\Services\\EventPhaseProcessorTest::testProcessingResetsStateBetweenCalls":0.001,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getAdapter_throws_for_unknown_type":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getSupportedTypes_returns_array":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_syncAllDates_returns_results_structure":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_activatePending_returns_results_structure":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_deactivateAll_returns_results_structure":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_cascadeDelete_returns_results_structure":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getAggregatedStatus_returns_empty_for_no_integrations":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getStatusCounts_returns_structure":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_cascadeDelete_handles_zero_eventId":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_syncAllDates_with_no_integrations":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_activatePending_with_no_integrations":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_deactivateAll_with_no_integrations":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_createFromTemplate_returns_array":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_createFromTemplate_handles_empty_templates":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_createFromTemplate_handles_missing_type":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getIntegrationsForEvent_returns_array":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getIntegration_returns_null_when_not_found":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_validateConfig_delegates_to_adapter":0,"Tests\\Unit\\EventManagement\\Services\\IntegrationServiceTest::test_getDefaultConfig_delegates_to_adapter":0,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetAllRewardsDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetAllPromotionsDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetPointsAndRewardsByPhoneDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testAddMemberDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneReturnsErrorWhenNotEnoughPoints":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testRedeemRewardByPhoneReturnsErrorWhenAllDuplicates":0.001,"Tests\\Unit\\FiveStars\\Controllers\\RewardControllerTest::testGetPointsAndRewardsByPhoneResponseFormatIsBackwardCompatible":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetFiveStarsSettingsReturnsStoreConfig":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCheckSalesDayHashDelegatesToService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCheckSalesDayHashReturnsFalseWhenNoMatch":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testReceiveSalesDataDelegatesToServices":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsForDayDelegatesToPointsService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPostsForDayDelegatesToPointsService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsReportByDateRangeDelegatesToPointsService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testCreateReportVarsByRowDelegatesToPointsService":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testReceiveSalesDataReturnsCorrectFormat":0.001,"Tests\\Unit\\FiveStars\\Controllers\\StoreControllerTest::testGetPointsReportByDateRangeReturnsCorrectFormat":0.001,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionPreservesHttpCode":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionWithZeroCodeForNetworkError":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionExtendsFiveStarsException":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionWith5xxServerError":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionWith4xxClientError":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testApiExceptionWithResponseMessage":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testConfigExceptionWithClearMessage":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testConfigExceptionExtendsFiveStarsException":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testConfigExceptionForEmptyRequiredValues":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testConfigExceptionForDevEnvironment":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testValidationExceptionForInvalidInput":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testValidationExceptionExtendsFiveStarsException":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testValidationExceptionForInvalidJson":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testValidationExceptionWithFieldErrors":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testAllExceptionsInheritFromBase":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testExceptionsAreThrowable":0,"Tests\\Unit\\FiveStars\\ExceptionsTest::testExceptionMessagePreservedThroughCatch":0,"Tests\\Unit\\FiveStars\\Security\\ReportsEndpointSecurityTest::test_reports_endpoint_requires_api_key_validation":0.001,"Tests\\Unit\\FiveStars\\Security\\ReportsEndpointSecurityTest::test_all_fivestars_post_endpoints_use_api_key_validation":0,"Tests\\Unit\\FiveStars\\Security\\ReportsEndpointSecurityTest::test_api_key_validation_happens_before_data_access":0,"Tests\\Unit\\FiveStars\\Security\\ReportsEndpointSecurityTest::test_no_hardcoded_credentials_in_fivestars_services":0.001,"Tests\\Unit\\FiveStars\\Security\\ReportsEndpointSecurityTest::test_legacy_api_class_deleted":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConstructorThrowsOnEmptyApiUrl":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConstructorThrowsOnEmptyApiKey":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConstructorThrowsOnEmptyApiSecret":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConstructorSucceedsWithValidParameters":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConstructorNormalizesUrlWithTrailingSlash":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testCreateFromEnvironmentLoadsProductionCredentials":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testCreateFromEnvironmentSelectsDevCredentialsWhenIsDev":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testCreateFromEnvironmentSelectsProdCredentialsWhenNotDev":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testCreateFromEnvironmentThrowsOnMissingEnvVars":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testCreateFromEnvironmentThrowsOnMissingDevEnvVars":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testPhoneHashUsesSha1Algorithm":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testPhoneHashIsConsistent":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testPhoneHashDifferentForDifferentNumbers":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testSuccessfulApiCallWithoutRetry":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testPostRequestWithData":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testPatchRequest":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testRetryOn5xxTransientErrors":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testNoRetryOn4xxPermanentErrors":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testNoRetryOn404":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testNoRetryOn422":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testMaxRetriesExhaustedThrowsException":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testConnectionTimeoutTriggersRetry":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testRequestTimeoutTriggersRetry":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testLoggingOnRetryAttempts":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testLoggingOnApiSuccess":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testLoggingOnApiFailure":0.001,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testInvalidJsonResponseThrowsValidationException":0,"Tests\\Unit\\FiveStars\\Services\\FiveStarsApiClientTest::testEmptySuccessResponseReturnsEmptyArray":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testGenerateIdempotencyKeyProducesDeterministicSha256Hash":0.001,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testSameInputsProduceSameKey":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testDifferentInputsProduceDifferentKeys":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testNegativePointsProducesDifferentKey":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testAcquireLockUsesRedisSetNxWithTtl":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testAcquireLockReturnsFalseIfLockAlreadyHeld":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testAcquireLockWithDifferentKeysDoNotInterfere":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testReleaseLockRemovesRedisKey":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testReleaseLockAllowsReacquisition":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testCheckAlreadyPostedReturnsCachedResultForSuccessStatus":0.001,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testCheckAlreadyPostedReturnsNullForNoMatch":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testCheckAlreadyPostedReturnsNullForFailureStatus":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testRecordPostingInsertsIntoFsPointsAuditLog":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testRecordPostingHandlesFailureStatusWithErrorMessage":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyPreventsDuplicateExecution":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyReturnsCachedResponseForDuplicates":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyThrowsDuplicatePostingExceptionOnLockFailure":0.001,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyReleasesLockOnSuccess":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyReleasesLockOnFailure":0.001,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testExecuteWithIdempotencyRecordsFailureOnException":0.001,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testConcurrentRequestsOnlyOneSucceeds":0,"Tests\\Unit\\FiveStars\\Services\\IdempotencyServiceTest::testLoggingOnDuplicatePreventedNoSecretsLeaked":0,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testConstructorAcceptsDependencies":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testConstructorAcceptsOptionalLogger":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithTaxIncluded":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithTaxExcluded":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithBuysIncluded":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithNegativeSalesUsesCeil":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithPointsRatio":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithMultipleCustomers":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayWithNoSalesData":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testCalculatePointsForDayUsesPreparedStatements":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingCreatesFsOutgoingRecords":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingSkipsZeroPoints":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingUsesStoreSoftwareId":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testQueuePointsForPostingWithNoPendingPoints":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeReturnsAllFields":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeFiltersBuys":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeUsesStoreTimezone":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesPendingStatus":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesRedemption":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeHandlesErrorStatus":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testGetPointsReportByDateRangeWithEmptyResults":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testLoggingOnSuccessNoSecretsLeaked":0.001,"Tests\\Unit\\FiveStars\\Services\\PointsServiceTest::testLoggingOnFailureNoSecretsLeaked":0.001,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_customer_lookup_route_exists":0.001,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_customer_redeem_route_exists":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_queue_members_route_exists":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_lookup_route_validates_phone_length":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_route_validates_phone_length":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_lookup_route_checks_fivestars_configuration":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_route_checks_fivestars_configuration":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_all_workspace_routes_check_store_access":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_lookup_route_delegates_to_reward_controller":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_route_delegates_to_reward_controller":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_queue_members_uses_local_database":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_queue_members_handles_empty_phones_gracefully":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_route_validates_rewards_not_empty":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_all_workspace_routes_log_errors":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_queue_members_degrades_gracefully_on_error":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_lookup_returns_customer_and_rewards_for_valid_phone":0.001,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_redeem_returns_success_for_valid_data":0.001,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_workspace_routes_are_in_admin_group":0,"Tests\\Unit\\FiveStars\\WorkspaceFiveStarsRoutesTest::test_route_file_imports_reward_controller":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testGetPresetDimensionsReturnsCorrectSizesForSmall":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testGetPresetDimensionsReturnsCorrectSizesForMedium":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testGetPresetDimensionsReturnsCorrectSizesForLarge":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testGetPresetDimensionsWithOverride":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testFromRowCreatesFloorPlanCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testToArraySerializesCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testValidationFailsForEmptyName":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testValidationFailsForLongName":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testValidationFailsForInvalidGridSize":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testValidationFailsForInvalidOpacity":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testValidationPassesForValidFloorPlan":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testIsCalibratedReturnsTrueWhenSet":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testIsCalibratedReturnsFalseWhenNull":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testPixelsToUnitsConversion":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testUnitsToPixelsConversion":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testConversionReturnsNullWhenNotCalibrated":0,"Tests\\Unit\\FloorPlan\\Models\\FloorPlanTest::testGetValidGridSizesReturnsAllPresets":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsCurrentReturnsTrueForCurrentActiveLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsCurrentReturnsFalseForWantedLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsCurrentReturnsFalseForCurrentDraftLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeDeletedReturnsFalseForCurrentActiveLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeDeletedReturnsTrueForWantedDraftLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeDeletedReturnsTrueForArchivedLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsScheduledReturnsTrueForScheduledStatus":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsDraftReturnsTrueForDraftStatus":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsArchivedReturnsTrueForArchivedStatus":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsDraftOfLayoutReturnsTrueWhenSet":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testIsDraftOfLayoutReturnsFalseWhenNull":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeActivatedReturnsTrueForDraftLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeActivatedReturnsTrueForScheduledLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeActivatedReturnsFalseForActiveLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testCanBeActivatedReturnsFalseForArchivedLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testFromRowCreatesLayoutCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testToArrayIncludesComputedProperties":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testValidationFailsForEmptyName":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testValidationFailsForScheduledWithoutActivationDate":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testValidationPassesForScheduledWithActivationDate":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testValidationPassesForValidLayout":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testGetValidTypesReturnsAllTypes":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testGetValidStatusesReturnsAllStatuses":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testFromRowHandlesNullActivationDate":0,"Tests\\Unit\\FloorPlan\\Models\\LayoutTest::testFromRowHandlesMySqlZeroDate":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testFromRowCreatesMaintenanceLogCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testFromRowHandlesDisplayName":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testToArraySerializesCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testToArrayIncludesUserNameWhenSet":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testToArrayIncludesRackWhenSet":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testIsDoneReturnsTrueForDoneAction":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testIsDoubleCheckedReturnsTrueForDoubleCheckedAction":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testGetActionLabelReturnsHumanReadableLabels":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testGetValidActionsReturnsExpectedActions":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testValidationFailsForMissingRackId":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testValidationFailsForMissingUserId":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testValidationFailsForInvalidAction":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testValidationPassesForValidLog":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testSetUserNameReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Models\\MaintenanceLogTest::testSetRackReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGetValidTypesReturnsExpectedTypes":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGetValidStatusesReturnsExpectedStatuses":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testFromRowCreatesTaskFromDatabaseRow":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testFromRowHandlesRemoveTaskWithBackstock":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testToArraySerializesAllProperties":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsPendingReturnsTrueForPendingStatus":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsCompletedReturnsTrueForCompletedStatus":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsAddTaskReturnsTrueForAddType":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsRemoveTaskReturnsTrueForRemoveType":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsBackstockTaskReturnsTrueForBackstockDisposition":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testIsBackstockTaskReturnsFalseForAddTasks":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testCompleteUpdatesStatusAndUser":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testCompleteSetsBackstockBinIfProvided":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testSetBackstockBinUpdatesBin":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGetSubcategoryNameReturnsLookupNameIfAvailable":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGetSubcategoryNameFallsBackToCode":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGenerateDescriptionForAddTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testGenerateDescriptionForRemoveTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateReturnsEmptyArrayForValidAddTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateReturnsEmptyArrayForValidRemoveTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesMissingLayoutId":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesMissingToSocketIdForAddTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesMissingFromSocketIdForRemoveTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesBackstockBinOnNonBackstockTask":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesEmptySubcategoryCode":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testValidateCatchesEmptyTaskDescription":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testToArrayIncludesAllFloorPlanTaskFields":0,"Tests\\Unit\\FloorPlan\\Models\\MoveTaskTest::testToArrayBackstockRemoveTask":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testFromRowCreatesRackCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testToArraySerializesCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testToArrayIncludesSocketsWhenRequestedAndLoaded":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testToArrayExcludesSocketsWhenNotLoaded":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGenerateNextNameReturnsR1ForEmpty":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGenerateNextNameIncrementsCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGenerateNextNameHandlesGaps":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGenerateNextNameIgnoresNonStandardNames":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testValidationFailsForMissingFloorPlanId":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testValidationFailsForEmptyName":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testValidationPassesForValidRack":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetBoundingBoxReturnsCorrectValues":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetCenterPointCalculatesCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testSetAndGetRackType":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testHasLoadedSocketsReturnsFalseInitially":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testHasLoadedSocketsReturnsTrueAfterSet":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testSetAndGetLastMaintenance":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testHasLoadedLastMaintenanceReturnsFalseInitially":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testSetAndGetDaysSinceLastMaintenance":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetDaysSinceLastMaintenanceCalculatesFromLog":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetDaysSinceLastMaintenanceUsesCreatedAt":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetDaysSinceLastMaintenanceReturnsMaxIfNoDates":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenanceScoreReturnsBaseScoreWithoutRackType":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenanceScoreUsesRackTypeInterval":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenanceScoreWithTrafficMultiplier":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testIsMaintenanceOverdueReturnsTrueWhenOverdue":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testIsMaintenanceOverdueReturnsFalseWhenNotOverdue":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testIsMaintenanceDueSoonReturnsTrueWhenDueSoon":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testIsMaintenanceDueSoonReturnsFalseWhenNotDueSoon":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testIsMaintenanceDueSoonReturnsFalseWhenOverdue":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenancePriorityReturnsHighWhenOverdue":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenancePriorityReturnsMediumWhenDueSoon":0,"Tests\\Unit\\FloorPlan\\Models\\RackTest::testGetMaintenancePriorityReturnsLowWhenNotUrgent":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testFromRowCreatesAssignmentCorrectly":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testGetSubcategoryNameReturnsDescriptionWhenAvailable":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testGetSubcategoryNameReturnsCodeWhenDescriptionNotAvailable":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testGetCategoryNameReturnsCategoryDescription":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testSetSubcategoryLookupUpdatesLookupData":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testToArrayIncludesLookupData":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testGetBadgeLabelTruncatesLongNames":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testGetBadgeLabelReturnsFullNameWhenShortEnough":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testIsForSubcategoryReturnsTrueForMatchingCode":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testIsForSubcategoryReturnsFalseForNonMatchingCode":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testValidationFailsForMissingLayoutId":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testValidationFailsForMissingSocketId":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testValidationFailsForEmptySubcategoryCode":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testValidationFailsForSubcategoryCodeTooLong":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testValidationPassesForValidAssignment":0,"Tests\\Unit\\FloorPlan\\Models\\SocketAssignmentTest::testFromRowHandlesAlternativeColumnNames":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogWithValidActionSucceeds":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogWithInvalidActionFails":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogWithInvalidEntityTypeFails":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogFloorPlanCreatedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogFloorPlanUpdatedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogRackCreatedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogLayoutCreatedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogLayoutActivatedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogLayoutScheduledIncludesActivationDate":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogCategoryAssignedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogCategoryUnassignedIncludesReason":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogDroppedCategoryResolvedUsesCorrectParameters":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogBulkAssignmentUpdateIncludesCount":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogAllowsNullEntityId":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testLogAllowsNullUserId":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testActionConstantsExist":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanAuditServiceTest::testEntityConstantsExist":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSetAuditServiceReturnsSelf":0.002,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetActiveReturnsFloorPlanWhenExists":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetActiveReturnsNullWhenNotExists":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetReturnsFloorPlanById":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testListReturnsArrayOfFloorPlans":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testCreateThrowsExceptionForInvalidFloorPlan":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testCreateSetsDefaultDimensionsFromGridSize":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSaveDiagramDataUpdatesDiagram":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSaveDiagramDataIncludesThumbnail":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testDeleteThrowsExceptionForActiveFloorPlan":0.001,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testDeleteReturnsFalseForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetRackTypesReturnsArray":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetRackTypeReturnsSingleRackType":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetRacksReturnsRacksForFloorPlan":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testGetRackReturnsSingleRack":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testCreateRackThrowsExceptionForInvalidRack":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testUpdateRackThrowsExceptionWithoutId":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testDeleteRackReturnsFalseForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testBulkUpdateRackPositionsUpdatesMultiple":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testUpdateSocketUpdatesName":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSearchRacksReturnsMatchingRacks":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSearchRacksReturnsEmptyArrayWhenNoMatches":0,"Tests\\Unit\\FloorPlan\\Services\\FloorPlanServiceTest::testSearchRacksPerformsPartialMatch":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testSetSalesDbReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testGetSalesHeatmapDataThrowsForInvalidDateRange":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testGetSalesHeatmapDataReturnsInsufficientDataForShortRange":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testGetSalesHeatmapDataReturnsCorrectPeriodInfo":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testGetMaintenanceHeatmapDataReturnsRackData":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testPercentileCalculationWithVariedData":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testPercentileCalculationWithEmptyData":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceTest::testPercentileCalculationWithAllSameValues":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testCalculateVelocityStandardCase":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testCalculateVelocityNewCategory":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testCalculateVelocityDiscontinuedCategory":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testCalculateVelocityNoActivity":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testCalculateVelocityDecelerating":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetDailySalesBySubcategoryUsesCalendarDays":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetDailySalesBySubcategoryTimezoneConversion":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetVelocityHeatmapDataValidatesDateRanges":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetVelocityHeatmapDataRejectsFutureEndDates":0,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetVelocityHeatmapDataInsufficientRecentData":0.001,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testGetVelocityHeatmapDataMultiSubcategoryAggregation":0.001,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testSubcategoryBreakdownStructure":0.001,"Tests\\Unit\\FloorPlan\\Services\\HeatmapServiceVelocityTest::testReturnsIncludedAsNegativeValues":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testSetAuditServiceReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testCalculateDiffThrowsExceptionForNonExistentLayout":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testCalculateDiffThrowsExceptionWhenNoCurrentLayout":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGetTaskReturnsTaskById":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGetTaskReturnsNullForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGetTasksReturnsArrayOfTasks":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGetTasksFiltersByStatus":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testCompleteTaskThrowsExceptionForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testCompleteTaskThrowsExceptionForAlreadyCompleted":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testSetTaskBackstockBinThrowsExceptionForNonBackstockTask":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testCountPendingTasksReturnsCorrectCount":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGenerateTasksThrowsExceptionWhenExistingTasksAndNotReplacing":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutDiffServiceTest::testGenerateTasksRequiresResolutionsForDroppedCategories":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testSetAuditServiceReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetReturnsLayoutById":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetReturnsNullForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetCurrentLayoutReturnsActiveCurrentLayout":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testListReturnsArrayOfLayouts":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testCreateThrowsExceptionForInvalidLayout":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testCreateThrowsExceptionForScheduledWithoutDate":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testUpdateThrowsExceptionWithoutId":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testDeleteReturnsFalseForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testDeleteThrowsExceptionForCurrentActiveLayout":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testActivateThrowsExceptionForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testActivateThrowsExceptionForAlreadyActive":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testScheduleThrowsExceptionForNonDraftLayout":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testArchiveThrowsExceptionForCurrentActiveLayout":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetAssignmentsReturnsArrayOfAssignments":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetAssignmentsGroupedBySocketGroupsCorrectly":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testAssignCategoryThrowsExceptionForDuplicate":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testRemoveAssignmentReturnsFalseForNonExistent":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testCopyAssignmentsReturnsCount":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testDiffThrowsExceptionForNonExistent":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutStatusConstantsExist":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutTypeConstantsExist":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutCanBeDeletedReturnsFalseForCurrentActive":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutCanBeDeletedReturnsTrueForWantedDraft":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutCanBeActivatedReturnsTrueForDraft":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutCanBeActivatedReturnsFalseForArchived":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetCurrentDraftReturnsDraftWhenExists":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetCurrentDraftReturnsNullWhenNoDraft":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testGetCurrentDraftReturnsNullWhenNoCurrentLayout":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testCreateCurrentDraftThrowsWhenNoCurrentLayout":0.001,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutIsDraftReturnsCorrectValues":0,"Tests\\Unit\\FloorPlan\\Services\\LayoutServiceTest::testLayoutIsDraftOfLayoutReturnsCorrectValues":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testSetHeatmapServiceReturnsSelf":0.001,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testSetAuditServiceReturnsSelf":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testCalculateMaintenanceScoreReturnsBaseScoreWithoutTrafficData":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testCalculateMaintenanceScoreCapsAtMaxBaseScore":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testCalculateMaintenanceScoreHandlesZeroInterval":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testMarkMaintainedThrowsForInvalidAction":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testMarkMaintainedThrowsForNonExistentRack":0.001,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testMarkMaintainedCreatesLogEntry":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetMaintenanceLogReturnsLogWhenFound":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetMaintenanceLogReturnsNullWhenNotFound":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetLastMaintenanceLogReturnsMostRecentLog":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetMaintenanceHistoryReturnsArrayOfLogs":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetPriorityLabelReturnsHighForOverdueRacks":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetPriorityLabelReturnsHighForHighScore":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetPriorityLabelReturnsMediumForMediumScore":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetPriorityLabelReturnsLowForLowScore":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetSettingsReturnsDefaultsWhenNoSettingsExist":0,"Tests\\Unit\\FloorPlan\\Services\\MaintenanceServiceTest::testGetSettingsReturnsSavedSettings":0,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateThrowsForInvalidStartDate":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateThrowsForInvalidEndDate":0,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateThrowsForStartAfterEnd":0,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateReturnsEmptyWhenNoRacks":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateWithTypicalData":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testClassifiesUnderAllocatedCorrectly":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testClassifiesBalancedCorrectly":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testClassifiesNoSalesCorrectly":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testCalculateWithoutSalesDb":0,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testSummaryContainsAllRequiredFields":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testRowContainsAllRequiredFields":0.001,"Tests\\Unit\\FloorPlan\\Services\\SpaceEfficiencyServiceTest::testSingleDayReportIsValid":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_host_environment_variable_is_set":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_test_name_environment_variable_is_set":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_username_environment_variable_is_set":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_db_password_environment_variable_is_set":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_request_method_is_set_for_slim":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_remote_addr_is_set_for_slim":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_request_uri_is_set_for_slim":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_script_name_is_set_for_slim":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_http_host_is_set_for_slim":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_log_dir_environment_variable_is_set":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_log_dir_exists":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_log_dir_is_writable":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_can_create_file_in_log_dir":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_composer_autoloader_is_loaded":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_can_instantiate_store_class":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_can_instantiate_store_controller_class":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_can_instantiate_comeback_cash_coupon_class":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_can_instantiate_workbook_classes":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_klogger_class_is_loaded":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_access_condition_classes_are_loaded":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_base_model_functions_are_available":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_employee_fixtures_class_is_loaded":0.001,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_task_fixtures_class_is_loaded":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_note_fixtures_class_is_loaded":0,"Tests\\Unit\\Infrastructure\\BootstrapTest::test_employee_test_case_is_loaded":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_database_connection_is_established_on_setup":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_database_connection_has_exception_mode_enabled":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_transaction_is_active_after_setup":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_can_execute_queries_within_transaction":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_inserted_data_exists_within_test":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_data_from_previous_test_is_not_visible":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_executeQuery_helper_returns_array":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_executeStatement_helper_returns_affected_rows":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_getLastInsertId_returns_valid_id":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_multiple_inserts_are_visible_within_transaction":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_updates_are_visible_within_transaction":0,"Tests\\Unit\\Infrastructure\\DatabaseTestCaseTest::test_deletes_are_visible_within_transaction":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedEmployeesCreatesCorrectCount":0.001,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedEmployeesWithOverrides":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedCategoriesCreatesDefaultSet":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedCategoriesWithCustomSet":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedLocationsCreatesDefaultSet":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedTaskGroupsCreatesDefaultSet":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedRegistersReturnsCorrectCount":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedRegistersClampsToBounds":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedStoreEnvironmentCreatesAllComponents":0.001,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testSeedStoreEnvironmentRespectsOptions":0.001,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testClearSeededDataExecutesDeletes":0,"Tests\\Unit\\Infrastructure\\Fixtures\\LookupTableSeederTest::testClearSeededDataWithSpecificTables":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_create_returns_builder_instance":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_build_returns_pdo_mock_object":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_build_without_expectations_creates_minimal_mock":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_expectQuery_returns_builder_for_fluent_chaining":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_withParams_returns_builder_for_fluent_chaining":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_willReturn_returns_builder_for_fluent_chaining":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_full_fluent_chain_creates_working_mock":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_expectQuery_without_params_still_works":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_statement_execute_returns_true":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_fetch_returns_single_row":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_fetch_returns_false_when_no_data":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_willReturnOnConsecutiveCalls_returns_builder":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_consecutive_calls_return_different_results":0.001,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_consecutive_fetch_calls_return_rows_then_false":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_willThrow_returns_builder":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_willThrow_causes_exception_on_execute":0.001,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_willThrow_with_custom_exception_class":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_multiple_different_queries_with_different_results":0.001,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_lastInsertId_can_be_configured":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_rowCount_returns_affected_rows":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_empty_result_set":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_null_values_in_result":0,"Tests\\Unit\\Infrastructure\\PdoMockBuilderTest::test_params_with_various_types":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_redis_mock_can_be_instantiated":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_redis_mock_starts_empty":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_redis_mock_can_track_operations":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_redis_mock_can_clear_all_data":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_redis_mock_operation_log_can_be_cleared":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_set_and_get_stores_and_retrieves_string":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_set_overwrites_existing_value":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_get_returns_null_for_nonexistent_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_del_removes_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_del_returns_zero_for_nonexistent_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_del_can_delete_multiple_keys":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_exists_returns_one_for_existing_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_exists_returns_zero_for_nonexistent_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hset_and_hget_work_with_hash_fields":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hset_can_set_multiple_fields_in_same_hash":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hget_returns_null_for_nonexistent_field":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hget_returns_null_for_nonexistent_hash":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hgetall_returns_all_hash_fields":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hgetall_returns_empty_array_for_nonexistent_hash":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hexists_returns_one_for_existing_field":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hexists_returns_zero_for_nonexistent_field":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hexists_returns_zero_for_nonexistent_hash":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_hdel_removes_field_from_hash":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lpush_adds_element_to_left_of_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lpush_returns_new_list_length":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lpush_adds_multiple_values":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_rpush_adds_element_to_right_of_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_rpop_removes_and_returns_rightmost_element":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_rpop_returns_null_for_empty_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lpop_removes_and_returns_leftmost_element":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lpop_returns_null_for_empty_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lrange_returns_elements_in_range":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lrange_returns_all_elements_with_negative_stop":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_lrange_returns_empty_array_for_nonexistent_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_llen_returns_list_length":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_llen_returns_zero_for_nonexistent_list":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_expire_sets_key_ttl":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_expire_returns_zero_for_nonexistent_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_ttl_returns_remaining_time":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_ttl_returns_negative_one_for_key_without_expiry":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_ttl_returns_negative_two_for_nonexistent_key":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_setex_sets_value_with_expiry":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_incr_increments_value_by_one":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_incr_initializes_nonexistent_key_to_one":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_incrby_increments_by_specified_amount":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_decr_decrements_value_by_one":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_decrby_decrements_by_specified_amount":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_sadd_adds_member_to_set":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_sadd_returns_zero_for_existing_member":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_smembers_returns_all_set_members":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_sismember_returns_one_for_existing_member":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_sismember_returns_zero_for_nonexistent_member":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_srem_removes_member_from_set":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_keys_returns_matching_keys":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_keys_returns_all_keys_with_asterisk":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_queue_workflow_lpush_then_rpop":0,"Tests\\Unit\\Infrastructure\\RedisMockTest::test_cache_workflow_with_hash":0,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_returns_store_instance":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_typenum":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_dbname":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_defaults_sets_timezone":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_with_overrides":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_sets_typenum_on_store":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_sets_matching_dbname":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_parses_store_type_from_typenum":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_parses_store_num":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_typenum_returns_storemock_for_chaining":0,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_twilio":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_quickbooks":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_fivestars":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_wheniwork":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_homebase":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_shopify":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_enables_constant_contact":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_supports_multiple_integrations":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_integrations_returns_storemock_for_chaining":0,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_timezone_sets_timezone":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_timezone_accepts_common_timezones":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_with_timezone_returns_storemock_for_chaining":0,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_builder_methods_can_be_chained":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_create_overrides_take_precedence_over_builder":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_default_store_has_standard_test_values":0.001,"Tests\\Unit\\Infrastructure\\StoreMockTest::test_default_store_has_sane_operational_defaults":0.001,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_tests_directory_exists":0,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_can_discover_test_files_in_tests_directory":0.008,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_all_discovered_files_end_with_Test_php":0.007,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_test_file_count_meets_minimum_threshold":0.007,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_unit_tests_directory_has_test_files":0.006,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_tests_namespace_is_available":0,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_phpunit_framework_classes_are_loaded":0,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_database_test_case_is_available":0,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_psr4_autoloader_loads_buyerkiosk_classes":0,"Tests\\Unit\\Infrastructure\\TestDiscoveryTest::test_discovered_test_classes_have_valid_namespaces":0.007,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_twilio_mock_can_be_instantiated":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_twilio_mock_provides_messages_property":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_twilio_mock_messages_has_create_method":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_twilio_mock_can_be_used_as_client_replacement":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_expect_send_returns_fluent_interface":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_expect_send_sets_expected_recipient":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_expect_send_verifies_recipient_mismatch":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_expect_send_sets_expected_body":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_expect_send_verifies_body_mismatch":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_multiple_expectations_can_be_set":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_succeed_returns_fluent_interface":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_succeed_returns_message_with_sid":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_succeed_returns_message_with_status_queued":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_succeed_returns_message_with_correct_to":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_succeed_returns_message_with_correct_body":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_fail_returns_fluent_interface":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_fail_throws_twilio_exception":0.001,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_will_fail_with_custom_error_message":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_mixed_success_and_failure_expectations":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_verify_passes_when_all_expectations_met":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_verify_fails_when_expected_call_not_made":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_verify_fails_when_some_expectations_unmet":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_verify_checks_call_order":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_verify_returns_void":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_unexpected_call_is_recorded":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_message_from_is_preserved":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_reset_clears_expectations":0,"Tests\\Unit\\Infrastructure\\TwilioMockTest::test_get_sent_messages_returns_all_sent":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_creates_mock_instance":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_can_set_expected_send_call":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_simulates_send_operation":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_provides_vonage_api_response_format":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_returns_success_response_when_configured":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_returns_success_with_custom_message_id":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_returns_failure_response_when_configured":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_returns_failure_with_custom_error_code_and_message":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_supports_common_vonage_error_codes":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_simulates_curl_error_when_configured":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_verifies_expected_phone_number":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_fails_verification_when_phone_does_not_match":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_verifies_expected_message_body":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_fails_verification_when_message_does_not_match":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_tracks_all_send_calls":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_fails_verification_when_expected_call_was_not_made":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_provides_fluent_interface_throughout":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_supports_any_phone_matcher":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_supports_any_message_matcher":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_can_reset_expectations":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_captures_request_parameters_including_api_credentials":0,"Tests\\Unit\\Infrastructure\\VonageMockTest::test_returns_network_cost_in_success_response":0,"Tests\\Unit\\KLoggerTest::testLoggerCreatesFileIfNotExists":0.001,"Tests\\Unit\\KLoggerTest::testLoggerUsesErrorLogWhenFileCannotBeCreated":0.001,"Tests\\Unit\\KLoggerTest::testLoggerWritesToErrorLogWhenFileOpenFails":0,"Tests\\Unit\\LegacyTableEliminationTest::testStoreMigrationServiceDoesNotReferenceUfUser":0.002,"Tests\\Unit\\LegacyTableEliminationTest::testStoreMigrationServiceUsesUsersTableForPreview":0,"Tests\\Unit\\LegacyTableEliminationTest::testStoreMigrationServiceUsesUsersTableForUpdate":0.001,"Tests\\Unit\\LegacyTableEliminationTest::testStoreConfigControllerDoesNotReferenceUfUser":0.001,"Tests\\Unit\\LegacyTableEliminationTest::testStoreConfigControllerUsesUsernameColumn":0.001,"Tests\\Unit\\LegacyTableEliminationTest::testCloseReportPreferencesRepositoryDoesNotReferenceUfUserStoregroup":0,"Tests\\Unit\\LegacyTableEliminationTest::testCloseReportPreferencesRepositoryDoesNotUseFlagEnabled":0,"Tests\\Unit\\LegacyTableEliminationTest::testCloseReportPreferencesRepositoryUsesDisplayNameColumn":0,"Tests\\Unit\\LegacyTableEliminationTest::testCloseReportPreferencesRepositoryUsesUserStoreAssignments":0,"Tests\\Unit\\LegacyTableEliminationTest::testCustomerSurveyFactoryDoesNotUseOldEmployeeIdOnlyJoin":0,"Tests\\Unit\\LegacyTableEliminationTest::testStatsApiControllerUsesDualLookupJoin":0,"Tests\\Unit\\LegacyTableEliminationTest::testBaseModelGetEmployeeNameArrayUsesDualKeys":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testSuccessfulLoginReturnsAllRequiredFields":0.476,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testLoginResponseMatchesVerifyFormat":0.474,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testInvalidCredentialsReturns401":0.473,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testDisabledAccountReturns401AccountDisabled":0.473,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testNotActivatedAccountReturns401AccountNotActivated":0.473,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testUserWithNoStoresReturns403NoStoreAccess":0.717,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRateLimitingReturns429WithRetryAfter":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testMissingFieldsReturns400ValidationError":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testInvalidJsonBodyReturns400ValidationError":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testDeviceFingerprintStoredWithRefreshToken":0.472,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testSuccessfulLoginResetsRateLimitCounter":0.474,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testMultiSessionCreatesSeperateRefreshToken":0.714,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testSuccessfulRefreshReturnsNewTokens":0.002,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRefreshRevokesOldToken":0.001,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testExpiredRefreshTokenReturns401":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRevokedRefreshTokenReturns401":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testConcurrentRefreshFailsForSecondRequest":0.001,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRefreshDoesNotAffectOtherDeviceTokens":0.001,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRefreshWithMissingTokenReturns400":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testRefreshRaceConditionReturnsRevokedToken":0.001,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testSuccessfulLogoutRevokesToken":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testLogoutWorksWithoutValidAccessToken":0,"Tests\\Unit\\MobileApi\\Controllers\\MobileAuthControllerTest::testLogoutWithInvalidTokenStillReturns200":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testValidBearerTokenSetsAuthContextAndJwtUser":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testInvalidTokenReturns401WithInvalidTokenCode":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testExpiredTokenReturns401WithExpiredTokenCode":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testValidApiKeyFallbackSetsJwtUser":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testDeprecatedApiKeyUsageIsLogged":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testNoAuthReturns401Unauthorized":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testWwwAuthenticateHeaderFormat":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testInvalidApiKeyReturns401":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testWrappedExpiredExceptionReturnsExpiredTokenCode":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testWrappedInvalidExceptionReturnsInvalidTokenCode":0.001,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testApiKeyValidatorReceivesCorrectApiKey":0,"Tests\\Unit\\MobileApi\\Middleware\\HybridAuthMiddlewareTest::testInvalidJwtDoesNotFallbackToApiKey":0.001,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidStoreAccessEnrichesAuthContext":0.001,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testDeniedAccessReturns403WithStoreAccessDeniedCode":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testDeniedAccessIsLogged":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testNoTypeNumProceedsWithoutEnrichment":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testRoleLevelExtraction with data set \"Owner\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testRoleLevelExtraction with data set \"Manager\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testRoleLevelExtraction with data set \"ShiftLead\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testRoleLevelExtraction with data set \"Employee\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testEmployeeIdExtraction":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"SQL injection attempt\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"uppercase letters\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"missing numbers\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"only numbers\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"special characters\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"too many letters\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"single letter\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testInvalidTypeNumFormatReturns400 with data set \"path traversal\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidTypeNumFormatsAccepted with data set \"ou00\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidTypeNumFormatsAccepted with data set \"pa00\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidTypeNumFormatsAccepted with data set \"ou123\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidTypeNumFormatsAccepted with data set \"ab0\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testValidTypeNumFormatsAccepted with data set \"zz9999\"":0,"Tests\\Unit\\MobileApi\\Middleware\\StoreAccessMiddlewareTest::testAuthContextImmutability":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testConstructionWithAllProperties":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testConstructionWithMinimalProperties":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testHasStoreAccessReturnsTrueWhenTypeNumAndEmployeeIdSet":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testHasStoreAccessReturnsFalseWhenTypeNumNull":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testHasStoreAccessReturnsFalseWhenEmployeeIdNull":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testHasStoreAccessReturnsFalseWhenBothNull":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsTrueForRoleLevelOne":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsTrueForRoleLevelTwo":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseForRoleLevelThree":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseForRoleLevelFour":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseWhenRoleLevelNull":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseWithNoStoreContext":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testPropertiesAreReadonly":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testAuthMethodJwt":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testAuthMethodApiKeyDeprecated":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseForRoleLevelZero":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseForNegativeRoleLevel":0,"Tests\\Unit\\MobileApi\\Models\\AuthContextTest::testIsManagerReturnsFalseForRoleLevelAboveFour":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testCheckRateLimitReturnsNullWhenUnderLimitNoAttempts":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testCheckRateLimitReturnsNullWhenUnderLimit":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testCheckRateLimitReturnsTtlWhenAtLimit":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testCheckRateLimitReturnsTtlWhenOverLimit":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testRecordFailedAttemptIncrementsCounter":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testRecordFailedAttemptSetsTtlOnlyOnFirstAttempt":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testResetAttemptsClearsCounter":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testResetAttemptsWorksWithNoAttempts":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testCheckRateLimitReturnsNullWhenRedisUnavailable":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testRecordFailedAttemptHandlesRedisUnavailable":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testResetAttemptsHandlesRedisUnavailable":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testEmailNormalizedToLowercase":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testEmailNormalizedWithTrim":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testEmailHashedForPrivacy":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testDifferentEmailsHaveSeparateLimits":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testConstructorAcceptsRedisInterface":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testConstructorWithNullDisablesRateLimiting":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testMaxAttemptsIsFive":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testWindowSecondsIs900":0,"Tests\\Unit\\MobileApi\\Services\\LoginRateLimiterTest::testFromEnvReturnsNullRedisWhenNoEnvVar":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceReturnsSuccessWhenDeviceExists":0.001,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceBindsCorrectParameters":0.001,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceReturns200ForNonExistentDevice":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceIsIdempotent":0.001,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceRequiresAuthentication":0.001,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceReturns401WhenJwtUserNotSet":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceOnlyRemovesOwnDevices":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testCannotRemoveOtherUsersDevice":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceUsesJwtUserIdNotRequestBody":0.001,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceSetsJsonContentType":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceWithEmptyDeviceId":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceWithSpecialCharactersInDeviceId":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceWithLongDeviceId":0,"Tests\\Unit\\MobileScheduling\\Controllers\\MobileAuthControllerDeviceRemovalTest::testRemoveDeviceHandlesDatabaseError":0.001,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testConstructorSetsRequiredFields":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testPriorityDefaultsToHigh":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testPriorityCanBeSetToNormal":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testTargetRouteIsNullable":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeCreatesCorrectNotification":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeWithModifiedType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeWithRemovedType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeThrowsWhenTimeRangeNullForModified":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeThrowsWhenTimeRangeEmptyForModified":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForScheduleChangeWithUnknownTypeUsesDefaults":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForOpenShiftCreatesCorrectNotification":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForClockReminderCreatesCorrectNotification":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForClockReminderWithClockOutType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForClockReminderWithOvertimeType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForClockReminderWithMissedPunchType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForClockReminderWithUnknownTypeUsesDefaults":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForSchedulePublishedCreatesCorrectNotification":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testForSchedulePublishedWithSingleShift":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadIncludesAndroidPriorityHigh":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadIncludesAndroidPriorityNormal":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadIncludesApnsPriorityHigh":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadIncludesApnsPriorityNormal":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadSerializesCorrectly":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadExcludesNullTargetRoute":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadConvertsDataValuesToStrings":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadOmitsNullFromPayload":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testJsonSerializeReturnsExpectedStructure":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateTypeThrowsForInvalidType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateTitleThrowsForEmptyTitle":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateBodyThrowsForEmptyBody":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidatePriorityThrowsForInvalidPriority":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForArrayValue":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForObjectValue":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testAllowedNotificationTypes":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForReservedKeyType":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForReservedKeyTitle":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForReservedKeyBody":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testValidateDataThrowsForReservedKeyTargetRoute":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadConvertsBooleanTrueToStringTrue":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadConvertsBooleanFalseToStringFalse":0,"Tests\\Unit\\MobileScheduling\\Models\\PushNotificationTest::testToFcmPayloadOmitsNullValues":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdReturnsAllTokensForUser":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdReturnsEmptyArrayWhenNoDevices":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByDeviceIdReturnsSpecificDevice":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByDeviceIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByFcmTokenReturnsToken":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByFcmTokenReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertUsesAtomicUpdate":0.001,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionWhenDeviceIdIsNull":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionWhenDeviceIdIsEmpty":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionWhenDeviceIdIsWhitespace":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertRollsBackOnFailure":0.001,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveByDeviceIdDeletesCorrectToken":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveByDeviceIdReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveByFcmTokenDeletesToken":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveByFcmTokenReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveAllForUserClearsAllTokens":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testRemoveAllForUserReturnsZeroWhenNoTokens":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testGetAllTokensUsesKeysetPagination":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testCountAllReturnsTotalCount":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testCountAllReturnsZeroWhenEmpty":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsReturnsGroupedTokens":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsReturnsEmptyForEmptyInput":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsFiltersNonIntegers":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsFiltersNegativeIntegers":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsFiltersZero":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testFindByUserIdsFiltersMixedTypes":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionWhenFcmTokenIsEmpty":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionWhenFcmTokenIsWhitespace":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertThrowsExceptionForInvalidPlatform":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertAcceptsIosPlatform":0.001,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testUpsertAcceptsAndroidPlatform":0.001,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testGetAllTokensClampsNegativeLimitToOne":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testGetAllTokensClampsHugeLimitToMax":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testGetAllTokensClampsNegativeAfterTokenIdToZero":0,"Tests\\Unit\\MobileScheduling\\Repositories\\DeviceTokenRepositoryTest::testPlatformConstantsAreDefined":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testInitializationWithValidCredentials":0.006,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testThrowsOnMissingCredentials":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testThrowsOnInvalidJsonCredentials":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testThrowsOnMissingProjectId":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testSendToUserSendsToAllDevices":0.006,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testSendToUserHandlesNoDevices":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testSendToDeviceBuildsCorrectPayload":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testSendToDeviceIncludesPlatformConfig":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testUnregisteredTokenTriggersCleanup":0.002,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testInvalidPayloadDoesNotTriggerCleanup":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testNotRegisteredTokenTriggersCleanup":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testRateLimitReturnsForRetry":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testHttp429WithoutDetailsReturnsForRetry":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenPerformsDryRun":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenReturnsFalseForInvalid":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenThrowsOn401AuthError":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenThrowsOn403PermissionError":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenThrowsOnRateLimit":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testValidateTokenReturnsFalseForEmptyToken":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testSendToUserCleansUpInvalidTokensAndContinues":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testNetworkFailureHandledGracefully":0.001,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testEmptyFcmTokenFailsFast":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testMissingNameInResponseReturnsError":0,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testBase64EncodedServiceAccountSupported":0.002,"Tests\\Unit\\MobileScheduling\\Services\\FirebaseNotificationServiceTest::testEmptyBase64CredentialsThrows":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddCreatesPendingNotification":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddWithNullTypeNum":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddWithDefaultPriority":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddWithScheduledSendAt":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddWithNullSendAtForImmediate":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingReturnsReadyNotifications":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingReturnsEmptyWhenNoPending":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingRespectsSendAtTiming":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingOrdersByPriority":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkProcessingUpdatesStatus":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkProcessingReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkProcessingOnlyUpdatesPendingRows":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkSentSetsSentAtTimestamp":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkSentReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkFailedIncrementsAttempts":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkFailedReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkFailedSetsFailedStatusAfterMaxAttempts":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkFailedResetssToPendingWhenUnderMaxAttempts":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testStatusConstantsAreDefined":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetStatsReturnsCountByStatus":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetStatsInitializesAllStatusesToZero":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testCancelMarksNotificationAsCancelled":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testCancelReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testFindByIdReturnsNotification":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testFindByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingForUserReturnsUserNotifications":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingEnforcesMinimumLimit":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingEnforcesMaximumLimit":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddThrowsExceptionForInvalidTypeNumFormat":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddThrowsExceptionForTypeNumWithUppercase":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddThrowsExceptionForTypeNumMissingDigits":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddAcceptsValidTypeNumFormats":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddAcceptsTypeNumWithMultipleDigits":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testAddThrowsExceptionForNonSerializableData":0.001,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkSentOnlyUpdatesProcessingRows":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testMarkFailedOnlyUpdatesProcessingRows":0,"Tests\\Unit\\MobileScheduling\\Services\\PushNotificationQueueTest::testGetPendingForUserRespectsSendAtTiming":0,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifyShiftAssignedQueuesFcmNotification":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifyShiftAssignedIncludesCorrectDataPayload":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifySchedulePublishedQueuesFcmNotification":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifySchedulePublishedIncludesWeekRange":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifyShiftAssignedRespectsDisabledPushPreference":0,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifySchedulePublishedRespectsAllDisabledPreferences":0,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifyRequestApprovedQueuesFcmWhenPushEnabled":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotificationsAreQueuedNotSentSynchronously":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testMultipleNotificationTypesUseQueueConsistently":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotifySwapReceivedUsesQueueWithNormalPriority":0.001,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotificationQueuesRegardlessOfFcmTokenStatus":0,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testNotificationTypeMapping":0,"Tests\\Unit\\MobileScheduling\\Services\\ScheduleNotificationServiceQueueTest::testQueueReceivesCorrectTypeNum":0.001,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testGetSettingsDataReturnsCorrectData":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testUpdateSettingsSanitizesTerms":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testUpdateSettingsValidatesFieldNames":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testUpdateSettingsIncrementsTermsVersionOnChange":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testGetSettingsDataIncludesAvailableFields":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testGetSettingsDataIncludesAvailableIdTypes":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testGenerateFlyerPdfReturnsPdfContent":0,"Tests\\Unit\\MobileSignIn\\Controllers\\AdminSettingsControllerTest::testGenerateFlyerPdfUsesLetterFormat":0,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunFindsIncompleteExpiredSessions":0,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunMarksExpiredSessionsAsAbandoned":0.002,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunTracksAbandonedEventForEachSession":0.001,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunCleansUpOldSessions":0,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunCleansUpExpiredPushSubscriptions":0,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunHandlesNoPushSubscriptionRepository":0,"Tests\\Unit\\MobileSignIn\\Jobs\\SessionCleanupJobTest::testRunReturnsCompleteResultsArray":0.001,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testConstructorSetsProperties":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testCreateNewReturnsSubscriptionWithoutId":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testWithIdReturnsNewInstanceWithId":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testWithEndpointReturnsNewInstance":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testWithKeysReturnsNewInstance":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testToArrayReturnsAllFields":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testFromArrayCreatesInstance":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testJsonSerializeReturnsArray":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testIsExpiredReturnsFalseForRecentSubscription":0,"Tests\\Unit\\MobileSignIn\\Models\\PushSubscriptionTest::testIsExpiredReturnsTrueForOldSubscription":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testCreateSessionWithRequiredFields":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testIsExpiredReturnsTrueWhenPastExpiry":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testIsExpiredReturnsFalseWhenNotExpired":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testIsCompleteReturnsTrueWhenCompleted":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testSetStepUpdatesCurrentStep":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testToArrayReturnsAllFields":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testFromRowCreatesSessionFromDatabaseRow":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testStepConstantsAreDefined":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testAccessExpiresAtSetOnCompletion":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testLastActivityAtUpdatedOnSetStep":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testCompletedSessionDoesNotExpireBeforeAccessWindow":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testToPublicArrayExcludesPii":0,"Tests\\Unit\\MobileSignIn\\Models\\SignInSessionTest::testJsonSerializeUsesPublicArray":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testCreateSignatureWithRequiredFields":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testRetentionExpiresAtIs7YearsFromSignDate":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testFileHashIsValidSHA256Format":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testSetSignatureIdUpdatesId":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testCheckboxFallbackSignatureType":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testTermsVersionTrackedWithSignature":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testToArrayReturnsAllFields":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testFromRowCreatesSignatureFromDatabaseRow":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testSignatureTypeConstantsAreDefined":0,"Tests\\Unit\\MobileSignIn\\Models\\SignatureTest::testGetAbsolutePathReturnsFullPath":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testCreateSettingsWithAllFields":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIsFieldRequiredReturnsTrueForRequiredField":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIsFieldRequiredReturnsFalseForOptionalField":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIsIdTypeAcceptedReturnsTrueForAcceptedType":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIsIdTypeAcceptedReturnsFalseForNotAcceptedType":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testToArrayReturnsAllFields":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testFromRowCreatesSettingsFromDatabaseRow":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testDefaultsCreatesDefaultSettings":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testDefaultsForPlatosClosetConcept":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testDefaultsForStyleEncoreConcept":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIncrementTermsVersionUpdatesVersion":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testSetTermsHtmlIncrementsVersion":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testAvailableFieldConstantsAreDefined":0,"Tests\\Unit\\MobileSignIn\\Models\\StoreSignInSettingsTest::testIdTypeConstantsAreDefined":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByDriversLicenseReturnsMatchingCustomer":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByDriversLicenseReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneReturnsMatchingCustomer":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testCreateCustomerReturnsId":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testCreateCustomerHandlesDuplicateDL":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testUpdateCustomerModifiesExistingRecord":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testUpdateCustomerReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByIdReturnsCustomer":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"digits only\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"with dashes\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"with parentheses\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"with dots\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"with spaces\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"with country code\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testFindByPhoneNormalizesFormat with data set \"mixed format\"":0,"Tests\\Unit\\MobileSignIn\\Repositories\\CustomerRepositoryTest::testDatabaseExceptionIsPropagated":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testSaveInsertsNewSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testFindBySessionTokenReturnsSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testFindBySessionTokenReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testFindByIdReturnsSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testUpdateModifiesExistingSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testUpdateReturnsTrueEvenWhenNoRowsChanged":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testUpdateReturnsFalseWhenIdIsNull":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testDeleteBySessionTokenRemovesSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testDeleteBySessionTokenReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testDeleteByIdRemovesSubscription":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testDeleteExpiredRemovesOldSubscriptions":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testDeleteExpiredReturnsZeroWhenNoneExpired":0,"Tests\\Unit\\MobileSignIn\\Repositories\\PushSubscriptionRepositoryTest::testCountActiveReturnsCount":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testCreateEntryInsertsWithMobileSignInFields":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testCreateEntrySetsCorrectColumnValues":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testGetActiveQueueReturnsOrderedList":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testGetEntryBySessionFindsEntry":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testGetEntryBySessionReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testGetEntryByIdFindsEntry":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testGetEntryByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testCreateEntrySetsNumContainersColumn":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testCreateEntryAllowsNullSignatureId":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testLinkSessionUpdatesMobileSigninSessionId":0,"Tests\\Unit\\MobileSignIn\\Repositories\\QueueRepositoryTest::testLinkSignatureUpdatesSignatureId":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testSaveInsertsSessionToDatabase":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testFindByIdReturnsSessionWhenFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testFindByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testMarkExpiredUpdatesSessionStatus":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testUpdateStepUpdatesSessionStepAndData":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testCleanupExpiredRemovesOldSessions":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testMarkCompleteUpdatesBuyIdAndCompletedAt":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testUpdateCustomerIdSetsCustomerIdOnSession":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SessionRepositoryTest::testFindByTypeNumAndDateRangeReturnsSessionsForAnalytics":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsReturnsStoreSettings":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsReturnsDefaultsWhenNotConfigured":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsReturnsDefaultsWhenStoreNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testSaveSettingsPersistsChanges":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testSaveSettingsIncrementsTermsVersionOnTermsChange":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testSaveSettingsPreservesVersionWhenTermsUnchanged":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsHandlesMalformedRequiredFieldsJson":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsHandlesMalformedIdTypesJson":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testSaveSettingsReturnsFalseOnDatabaseError":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testGetSettingsCachesResult":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SettingsRepositoryTest::testSaveSettingsInvalidatesCache":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testSaveReturnsSignatureId":0.001,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testFindByBuyIdReturnsSignature":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testFindByBuyIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testFindBySessionIdReturnsSignature":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testFindBySessionIdReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testGetExpiredSignaturesReturnsOldRecords":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testGetExpiredSignaturesReturnsEmptyArrayWhenNoneExpired":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testDeleteRemovesSignatureRecord":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testDeleteReturnsFalseWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testSaveWithCheckboxFallbackSignature":0,"Tests\\Unit\\MobileSignIn\\Repositories\\SignatureRepositoryTest::testFindByIdReturnsSignature":0,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testCreateFromEnvReturnsDisabledServiceWithoutKey":0.002,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedReturnsFalseWhenDisabled":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdateReturnsFalseWhenDisabled":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishYourTurnReturnsFalseWhenDisabled":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testGetChannelNameFollowsPattern":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testIsEnabledReturnsCorrectStatus":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedPayloadStructure":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdatePayloadStructure":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishYourTurnPayloadStructure":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testEventNamesFollowSpec":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishQueueJoinedHandlesNullEstimatedWait":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testPublishPositionUpdateHandlesNullEstimatedWait":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testBroadcastQueueUpdateReturnsStatus":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AblyPublisherServiceTest::testWorkspaceChannelIsTypeNumOnly":0.001,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackSessionStartedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackSessionStartedIncludesRequiredProperties":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackSessionStartedIncludesTimestamp":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackStepCompletedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackStepCompletedIncludesRequiredProperties":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackStepCompletedAcceptsAllStepNames":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackCompletedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackCompletedIncludesRequiredProperties":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackCompletedWithReturningCustomer":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackAbandonedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackAbandonedIncludesRequiredProperties":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInSessionStartedEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInStepCompletedEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInCompletedEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInAbandonedEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInSessionExpiredEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInStatusPageViewedEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInPwaEvents":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInNotificationEvents":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testNoPiiInDesignerTooltipEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackStepErrorPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackSessionExpiredPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackStatusPageViewedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackPwaTutorialShownPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackPwaTutorialDismissedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackPwaInstalledPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackNotificationSentPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackFallbackSmsPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testTrackDesignerTooltipOpenedPublishesEvent":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testServiceDisabledWithNullSink":0,"Tests\\Unit\\MobileSignIn\\Services\\AnalyticsEventServiceTest::testIsEnabledReturnsTrueWithValidSink":0,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerReturnsPdfContent":0.027,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerUsesLetterFormat":0.004,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesConceptBrandingPlatosCloset":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesConceptBrandingOuac":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesConceptBrandingStyleEncore":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesConceptBrandingClothesMentor":0.004,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesConceptBrandingPias":0.004,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerHandlesUnknownConcept":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesQRCode":0.004,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerAcceptsRawPngData":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGetConceptBrandingReturnsCorrectData":0,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testGenerateFlyerIncludesInstructions":0.003,"Tests\\Unit\\MobileSignIn\\Services\\FlyerServiceTest::testConstructorWorksWithoutLogoDir":0.003,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationSendsMessageOnSuccess":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationReturnsFalseOnFailure":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationBuildsCorrectMessage":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationNormalizesPhoneNumber":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationRejectsInvalidPhoneNumber":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendFallbackSmsAfterPresenceLost":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendFallbackSmsAfterPushFailure":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationRespectsFloodProtector":0,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationWithRetrySucceedsOnSecondAttempt":5.004,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationWithRetryExhaustsAttempts":20.01,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationWithRetryDoesNotRetryFloodProtectorErrors":0.002,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationWithRetryDoesNotRetryDoNotTextErrors":0.002,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationTracksSuccessfulSend":0.002,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationDoesNotTrackFailedSend":0.003,"Tests\\Unit\\MobileSignIn\\Services\\NotificationServiceTest::testSendTurnNotificationHandlesNullStore":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGetQRCodeUrlReturnsCorrectFormat":0,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeReturnsBase64Png":0.019,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeUsesErrorCorrectionLevelM":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeDefaultSizeIsSufficient":0.013,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeAcceptsCustomSize":0.01,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGetQRCodeUrlHandlesSpecialCharacters":0,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testServiceUsesConfiguredBaseUrl":0,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodePngReturnsRawPng":0.008,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeSvgReturnsSvgMarkup":0.007,"Tests\\Unit\\MobileSignIn\\Services\\QRCodeServiceTest::testGenerateQRCodeSvgDataUrlReturnsDataUrl":0.007,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculatePositionFindsCorrectPosition":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculatePositionReturnsZeroWhenNotInQueue":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculatePositionReturnOneForSingleItemQueue":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitReturnsNullWhenDisabled":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitForFirstInQueue":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitUsesContainerFormula":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitWithPartiallyProcessed":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitUsesSortedContainers":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitSumsMultipleEntriesAhead":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitWithCustomStoreConfig":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testGetQueueInfoReturnsCombinedData":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testGetQueueInfoWithEstimateDisabled":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testEmptyQueueReturnsPositionZero":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testQueueIsCachedWithinRequest":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testClearCacheForcesFreshFetch":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testEstimatedWaitMinNeverNegative":0,"Tests\\Unit\\MobileSignIn\\Services\\QueuePositionServiceTest::testCalculateEstimatedWaitReturnsNullForInvalidPosition":0,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedFindsActiveSessionsForStore":0,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedRecalculatesPositionForEachSession":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedPublishesPositionUpdateToAbly":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedPublishesYourTurnWhenPositionIsOne":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotPublishYourTurnWhenPositionIsTwo":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedSendsPushNotificationAtPositionOne":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedSendsPushNotificationAtPositionTwo":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotSendPushAtPositionThreeOrHigher":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedFallsBackToSmsWhenPushFails":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedSendsSmsAtPositionTwoWhenPushDisabled":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedSendsSmsAtPositionOneWhenPushDisabled":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotSendSmsWhenOptedOut":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotSendSmsWhenNoPhone":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotSendDuplicateNotifications":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedMarksNotificationSent":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedMarksNotifiedWhenSmsFallbackSucceeds":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotMarkNotifiedWhenBothPushAndSmsFail":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedDoesNotMarkNotifiedAtPositionTwoWhenBothFail":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedHandlesNoActiveSessions":0,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedHandlesCompletedBuys":0.001,"Tests\\Unit\\MobileSignIn\\Services\\QueueUpdateListenerTest::testOnQueueChangedBroadcastsWorkspaceUpdate":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV3WithValidTokenReturnsHighScore":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV3WithExactThresholdScorePasses":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV3WithLowScoreTriggersV2Fallback":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV3WithFailedResponseTriggersV2Fallback":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV3WithActionMismatchIsFailure":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV2WithValidResponsePasses":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV2WithInvalidResponseFails":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV2FailureRecordsAttempt":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testBlocksAfterThreeFailedV2Attempts":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyV2ShortCircuitsWhenBlocked":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testBlockedIpReturnsWaitTime":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testIsBlockedReturnsFalseForNewIp":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testGetFailedV2AttemptsReturnsZeroForNewIp":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testSuccessfulV2VerificationResetsAttempts":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testGracefulDegradationWhenRedisUnavailable":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testGetSiteKeyReturnsConfiguredKey":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testCustomThresholdCanBeConfigured":0,"Tests\\Unit\\MobileSignIn\\Services\\RecaptchaServiceTest::testVerifyTimeoutReturnsFailureResult":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testCreateSessionGeneratesValidUuidAndSaves":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testCreateSessionSetsOneHourExpiry":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testCreateSessionTruncatesLongUserAgent":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateSessionReturnsSessionWhenValid":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateSessionReturnsNullForMalformedUuid":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateSessionReturnsNullForWrongStore":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateSessionMarksExpiredWhenSessionExpired":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateSessionReturnsNullWhenNotFound":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testRefreshSessionExpiryExtendsLifetime":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testGenerateUuidCreatesCryptographicallySecureUuids":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"valid uuid v4\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"valid uuid v4 uppercase\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"empty string\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"random string\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"sql injection attempt\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"uuid v1 format\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"missing dashes\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"too short\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testValidateUuidFormat with data set \"too long\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SessionServiceTest::testSessionUsesUtcTimezone":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testEnforcesTenSessionsPerIpPerHour":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testDifferentIpsHaveIndependentLimits":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testGetRetryAfterReturnsSecondsUntilWindowExpires":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testGetRetryAfterReturnsZeroWhenNotLimited":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testGetCurrentCountReturnsCorrectCount":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testGetRemainingRequestsReturnsCorrectValue":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testGracefulDegradationFailsOpenWhenRedisUnavailable":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testRecordRequestSafeWhenRedisUnavailable":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testUsesFixedWindowPattern":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testIpNormalizationIpv4":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testFromEnvCreatesInstanceWithoutError":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testCustomLimit":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInRateLimiterTest::testCustomWindowDuration":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithDLReturnsFoundCustomer":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithDLReturnsNotFound":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithPhoneReturnsFoundCustomer":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithPhoneReturnsNotFound":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testRegisterCustomerCreatesNewCustomer":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testRegisterCustomerValidatesRequiredFields":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPassesWithValidData":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataFailsOnInvalidEmail":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataFailsOnInvalidPhone":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataFailsOnMissingRequiredField":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"valid simple email\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"valid email with subdomain\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"valid email with plus\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"valid email with dots\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"invalid no at symbol\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"invalid no domain\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"invalid no local part\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"invalid double at\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"invalid spaces\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataEmailValidation with data set \"empty string\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid 10 digits\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid with dashes\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid with parentheses\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid with dots\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid with spaces\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"valid 11 digits with 1\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"invalid too short\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"invalid too long\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"invalid letters\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"invalid empty\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataPhoneValidation with data set \"invalid special chars\"":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithInvalidIdTypeThrowsException":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testCheckCustomerWithStateIdUsesDLLookup":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testRegisterCustomerReturnsExistingOnDuplicateDL":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataAcceptsOptionalEmptyFields":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataSkipsEmailValidationWhenNotProvided":0,"Tests\\Unit\\MobileSignIn\\Services\\SignInServiceTest::testValidateProfileDataTrimsWhitespace":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureWithValidBase64Png":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureRejectsOversizedImage":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureRejectsNonPngFormat":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureRejectsGifFormat":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureRejectsInvalidBase64":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureGeneratesCorrectSha256Hash":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureWritesAtomically":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureCalculates7YearRetention":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureCheckboxFallbackCreatesValidRecord":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testVerifySignatureReturnsTrueWhenHashMatches":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testVerifySignatureReturnsFalseWhenHashMismatch":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testVerifySignatureReturnsFalseWhenFileMissing":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testVerifySignatureReturnsTrueForCheckboxFallback":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testVerifySignatureReturnsFalseWhenSignatureNotFound":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testFilePathIncludesTypeNumForStoreIsolation":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureRejectsEmptyBase64Data":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testCaptureSignatureHandlesRawBase64WithoutDataUrl":0.001,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testGetMaxSignatureSizeReturns100KB":0,"Tests\\Unit\\MobileSignIn\\Services\\SignatureServiceTest::testGetRetentionYearsReturns7":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesScriptTags":0.002,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesStyleTags":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesIframeTags":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesFormTags":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizePreservesAllowedTags":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizePreservesAnchorTagsWithHref":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesJavascriptUrls":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesDataUrls":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesEventHandlers":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeRemovesDangerousAttributes":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeHandlesEmptyInput":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeHandlesPlainText":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeHandlesEncodedXssAttempts":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeAddsSecureAttributesToExternalLinks":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizePreservesRelativeUrls":0,"Tests\\Unit\\MobileSignIn\\Services\\TermsSanitizerTest::testSanitizeHandlesRealWorldTermsContent":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionSavesValidSubscription":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionValidatesEndpoint":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionRequiresP256dhKey":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionRequiresAuthKey":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionUpdatesExistingSubscription":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSendPushReturnsFalseWhenNoSubscription":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSendPushReturnsFalseWhenDisabled":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testIsEnabledReturnsFalseWithoutVapidKeys":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testIsEnabledReturnsTrueWithVapidKeys":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSaveSubscriptionCallsRepositoryWithCorrectData":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSendPushTracksAnalyticsOnSuccess":0.001,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSendPushTracksAlmostYourTurnAnalytics":0.001,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testSendPushDefaultsToYourTurnNotificationType":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testGetPublicKeyReturnsConfiguredKey":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testGetPublicKeyReturnsNullWhenDisabled":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testBuildNotificationPayloadStructure":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testBuildNotificationPayloadIncludesCustomData":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testBuildNotificationPayloadSetsRequireInteraction":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testDeleteSubscriptionRemovesFromRepository":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testHasSubscriptionChecksRepository":0,"Tests\\Unit\\MobileSignIn\\Services\\WebPushServiceTest::testHasSubscriptionReturnsFalseWhenNone":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_demo_mode_detection_when_enabled":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_demo_mode_detection_when_disabled":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_ably_should_be_skipped_in_demo_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_ably_should_proceed_in_production_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_wheniwork_should_be_skipped_in_demo_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_wheniwork_should_proceed_in_production_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_external_sms_should_be_blocked_in_demo_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_external_sms_should_proceed_in_production_mode":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_demo_stores_identified_by_database_pattern":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_demo_typenum_pattern_recognized":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_concept_maps_to_correct_demo_database":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_invalid_concept_throws_exception":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_magic_link_email_always_allowed":0,"Tests\\Unit\\Mock\\MockDataGeneratorDemoModeTest::test_analytics_always_allowed":0,"Tests\\Unit\\PHPStan\\Rules\\NoDuplicateNamedPdoParamsRuleTest::testDuplicateNamedParam":1.602,"Tests\\Unit\\PHPStan\\Rules\\NoDuplicateNamedPdoParamsRuleTest::testNoDuplicatesIsClean":0.006,"Tests\\Unit\\PHPStan\\Rules\\NoDuplicateNamedPdoParamsRuleTest::testDuplicateInInterpolatedString":0.007,"Tests\\Unit\\PHPStan\\Rules\\NoDuplicateNamedPdoParamsRuleTest::testParamInQuotedStringIgnored":0.006,"Tests\\Unit\\PHPStan\\Rules\\NoDuplicateNamedPdoParamsRuleTest::testTripleDuplicateParam":0.006,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPublishReturnsFalseWhenDisabled":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPublishReturnsFalseWhenThrottled":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPublishSendsCorrectPayload":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPublishReturnsTrueOnSuccess":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPublishReturnsFalseOnException":0.001,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPayloadHasCorrectAction":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testPayloadHasCorrectEndpoints":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testReportBoundaryTruePassedThrough":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testReportBoundaryFalsePassedThrough":0,"Tests\\Unit\\PosDataCatchup\\CatchupAblyPublisherTest::testIsEnabledReturnsCorrectState":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testControllerConstructorAcceptsPdo":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testControllerMethodExists":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testUpdateStoresTablePreparesCorrectSql":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testDateValidationRejectsInvalidDateValues":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testDateValidationAcceptsValidDates":0,"Tests\\Unit\\PosDataCatchup\\CatchupBoundaryControllerTest::testDateFormatRegexValidation":0,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testGetBuyQueueDatesQueriesStoreDb":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testGetScheduledOpenDaysRespectsHolidays":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testGetSalesDataDatesQueriesSalesDb":0,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testGetBuysDataDatesQueriesSalesDb":0,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testGetDailyCloseDataDatesQueriesStoreDb":0,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testTimezoneUsedForDateCalculations":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testDetectGapsFindsDateWithMissingSales":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testDetectGapsPartialDataReturnsOnlyMissingTypes":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testClosedDayNotFlagged":0.001,"Tests\\Unit\\PosDataCatchup\\GapDetectorTest::testBuyQueueOverridesStoreHours":0.001,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testUpsertGapInsertsNewGap":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testUpsertGapUpdatesExistingGap":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testMarkCommandedUpdatesStatusAndIncrementsCount":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testResolveGapSetsResolvedStatus":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testMarkUnavailableBulkResolvesGapsBeforeDate":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testGetUnresolvedGapsReturnsOnlyDetectedAndCommanded":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testGetPersistentGapsReturnsOldGaps":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testMarkPersistentUpdatesOldGaps":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testGetGapStatsReturnsSummaryCounts":0,"Tests\\Unit\\PosDataCatchup\\GapTrackerTest::testCleanupOldResolvedDeletesExpiredGaps":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testStaticMethods":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testStoreWithoutDrsApiKeySkips":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testStoreWithEmptyDrsApiKeySkips":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testCalculatesCorrectWindow":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testRespectsEarliestDataDate":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testInvalidWindowReturnsSkip":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testDetectsAndPublishesChunkedCommands":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testNewStoreFullBackfill":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testExistingStoreNoBoundaryReport":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testRechecksCommandedGapsForResolution":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testMarksPersistentGaps":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testChunkLogic365Days":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testGroupIntoRangesContiguousDates":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testGroupIntoRangesEmptyArray":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testGroupIntoRangesSingleDate":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testChunkSingleDay":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testManualPayloadOverride":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testReturnsSuccessWithMetrics":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testCheckpointCalledInLoops":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testPublisherFailureDoesNotCount":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testNoGapsDetectedReturnsZeroMetrics":0.001,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testFailedHandlerDoesNotThrow":0,"Tests\\Unit\\PosDataCatchup\\PosDataCatchupJobTest::testJobIsRegisteredInTaskCommandFactory":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testAdminStartTrialWithOverride":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testExtendTrialUpdatesEndDate":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testExtendTrialRejectsNonTrialStore":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testAdminActivateCallsTrialServiceWithAdminSource":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testAdminDeactivateCallsTrialServiceWithAdminSource":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testSetStatusUpdatesStatus":0,"Tests\\Unit\\Premium\\AdminPremiumApiControllerTest::testSetStatusRejectsInvalidStatus":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testGetStatusReturnsFullPremiumInfo":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testGetStatusReturnsNullDaysRemainingForActive":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testGetStatusHandlesNullPremiumInfo":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testStartTrialHappyPath":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testStartTrialRejectsNonOwner":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testStartTrialPassesThroughTrialAlreadyUsedError":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testActivatePremiumHappyPath":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testActivatePremiumRejectsNonOwner":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testDeactivatePremiumHappyPath":0,"Tests\\Unit\\Premium\\PremiumApiControllerTest::testDeactivatePremiumRejectsNonOwner":0,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testCacheInvalidationEndToEnd":0,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testEventLoggerRecordsCompleteTrialLifecycle":0.001,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testEventLoggerTriggersBillingNotificationForCorrectEvents":0.001,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testTrialServiceInvalidatesCacheOnEveryStateTransition":0.001,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testRuntimeTrialExpirationInPremiumService":0,"Tests\\Unit\\Premium\\PremiumCrossComponentTest::testRedisFailureFallback":0.001,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testLogForwardsToRepository":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testLogReturnsEventId":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testLogPassesNullPropertiesAndUserId":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testLogDefaultsPlatformToWeb":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testBillingNotificationTriggeredForPremiumActivated":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testBillingNotificationTriggeredForPremiumDeactivated":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testBillingNotificationTriggeredForPremiumReactivated":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testNoBillingNotificationForTrialStarted":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testNoBillingNotificationForTrialExpired":0,"Tests\\Unit\\Premium\\PremiumEventLoggerTest::testBillingNotificationHandlesNullProperties":0,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testReturns403WhenStoreNotPremium":0.001,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testPassesThroughWhenPremiumActive":0,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testPassesThroughWhenTrialActive":0,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testIncludesCorrectFeatureLabelInResponse":0,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testReturnsNullForMissingTypeNum":0,"Tests\\Unit\\Premium\\PremiumGateMiddlewareTest::testResponseIncludesUpgradeUrl":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testFullTrialActivationFlow":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testFullPremiumActivationFlow":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testFullTrialExpirationFlow":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testReactivationFlow":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testNonOwnerCannotStartTrialOrActivate":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testMobileApiPremiumStatusShape":0,"Tests\\Unit\\Premium\\PremiumIntegrationTest::testCompleteLifecycle":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testGetPremiumInfoReturnsCorrectFields":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testGetPremiumInfoReturnsDefaultsForNewStore":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testGetPremiumInfoReturnsNullForNonexistentStore":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testUpdatePremiumStatusUpdatesStoresColumns":0.005,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testUpdatePremiumStatusReturnsFalseForNonexistentStore":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testGetTrialStoresReturnsStoresWithTrialStatus":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testGetTrialStoresReturnsEmptyArrayWhenNoTrials":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testLogEventInsertsToPremiumEventLog":0,"Tests\\Unit\\Premium\\PremiumRepositoryTest::testLogEventStoresPropertiesAsJson":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testNonOwnerCannotStartTrial":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testNonOwnerCannotActivatePremium":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testNonOwnerCannotDeactivatePremium":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testMiddlewareCannotBeBypassed_ExpiredTrial":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testMiddlewareCannotBeBypassed_NoneStatus":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testMiddlewareCannotBeBypassed_ExpiredStatus":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testNoDataLeaksIn403Responses":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testAdminSetStatusRejectsInvalidValues":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testTrialActivationIsIdempotent":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testPremiumActivationFromActiveStateSucceeds":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testExpiredTrialCannotBeExpiredAgain":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testAdminTrialExtensionRejectsNonTrialStores":0,"Tests\\Unit\\Premium\\PremiumSecurityTest::testAdminTrialExtensionRejectsInvalidDateFormat":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsTrueForTrialStatus":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsTrueForActiveStatus":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsFalseForNoneStatus":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsFalseForExpiredStatus":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsFalseForExpiredTrialInStoreTimezone":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveReturnsTrueForTrialEndingToday":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetPremiumInfoReturnsCachedDataWithoutDbQuery":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetPremiumInfoQueriesDbOnCacheMissAndCaches":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testInvalidateCacheDeletesRedisKey":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testIsPremiumActiveWorksWithoutRedis":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetDaysRemainingReturnsCorrectCountForTrial":0.001,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetDaysRemainingReturnsNullForActiveStatus":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetDaysRemainingReturnsZeroForExpiredTrial":0,"Tests\\Unit\\Premium\\PremiumServiceTest::testGetPremiumInfoReturnsNullForNonexistentStore":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testConstantsHaveCorrectValues":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testFromStringCreatesNoneStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testFromStringCreatesTrialStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testFromStringCreatesActiveStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testFromStringCreatesExpiredStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testFromStringDefaultsToNoneForInvalidString":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsActiveReturnsTrueForTrial":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsActiveReturnsTrueForActive":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsActiveReturnsFalseForNone":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsActiveReturnsFalseForExpired":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsTrialReturnsTrueForTrial":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsTrialReturnsFalseForActive":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsTrialReturnsFalseForNone":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testIsTrialReturnsFalseForExpired":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testCanStartTrialReturnsTrueWhenTrialNotUsed":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testCanStartTrialReturnsFalseWhenTrialAlreadyUsed":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testCanStartTrialReturnsFalseWhenAlreadyActive":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testCanStartTrialReturnsFalseWhenOnTrial":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testLabelReturnsReadableStringForNone":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testLabelReturnsReadableStringForTrial":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testLabelReturnsReadableStringForActive":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testLabelReturnsReadableStringForExpired":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testEqualsReturnsTrueForSameStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testEqualsReturnsFalseForDifferentStatus":0,"Tests\\Unit\\Premium\\PremiumStatusTest::testToStringReturnsValue":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testGetNameReturnsPremium":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testGetFunctionsReturnsThreeFunctions":0.002,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testIsPremiumActiveReturnsTrueWhenActive":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testIsPremiumActiveReturnsFalseWhenNotActive":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testIsPremiumActiveReturnsFalseForNullTypeNum":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testIsPremiumActiveReturnsFalseForEmptyTypeNum":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testIsPremiumActiveReturnsFalseOnException":0.001,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumStatusReturnsStatusString":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumStatusReturnsActiveStatus":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumStatusReturnsNoneForNullTypeNum":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumStatusReturnsNoneOnException":0.001,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumStatusReturnsNoneWhenMissingKey":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumDaysRemainingReturnsInt":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumDaysRemainingReturnsNullWhenNotTrial":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumDaysRemainingReturnsNullForNullTypeNum":0,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testPremiumDaysRemainingReturnsNullOnException":0.001,"Tests\\Unit\\Premium\\PremiumTwigExtensionTest::testExtendsTwigExtension":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testJobName":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testDisplayName":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testQueue":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testScopeIsGlobal":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testTimeout":0,"Tests\\Unit\\Premium\\TrialExpirationJobTest::testImplementsBaseJob":0,"Tests\\Unit\\Premium\\TrialServiceTest::testStartTrialSetsTrialStatusAndDates":0,"Tests\\Unit\\Premium\\TrialServiceTest::testStartTrialCalculatesOneCalendarMonth":0,"Tests\\Unit\\Premium\\TrialServiceTest::testStartTrialRejectsRepeatTrial":0,"Tests\\Unit\\Premium\\TrialServiceTest::testStartTrialRejectsWhenAlreadyActive":0,"Tests\\Unit\\Premium\\TrialServiceTest::testStartTrialReturnsErrorForNonexistentStore":0,"Tests\\Unit\\Premium\\TrialServiceTest::testActivatePremiumSetsActiveStatus":0,"Tests\\Unit\\Premium\\TrialServiceTest::testActivatePremiumLogsReactivatedEventForExpiredStore":0,"Tests\\Unit\\Premium\\TrialServiceTest::testDeactivatePremiumSetsExpiredStatus":0,"Tests\\Unit\\Premium\\TrialServiceTest::testExpireTrialTransitionsTrialToExpired":0,"Tests\\Unit\\Premium\\TrialServiceTest::testExpireTrialReturnsFalseForNonTrialStore":0,"Tests\\Unit\\Premium\\TrialServiceTest::testExpireTrialIsIdempotent":0,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryReturnsCorrectCounts":0.001,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryReturnsZerosWhenNoUsage":0.001,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryReturnsZerosOnDatabaseException":0.001,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryReturnsArrayWithCorrectKeys":0.001,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testQueriesUseCorrectTrialStartDateParameter":0,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testAiScheduleCountOnlyCountsCompletedJobs":0,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryHandlesNullReturnFromFetchColumn":0,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryHandlesStringNumbersFromDatabase":0,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryHandlesExecuteFailure":0.001,"Tests\\Unit\\Premium\\TrialUsageServiceTest::testGetTrialUsageSummaryHandlesPartialFailure":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReportViewed_heatmap_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReportViewed_table_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_zeroCategoriesReturnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_largeDuration_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_cacheHitTrue_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackScoreCalculated_cacheHitFalse_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackBinCategoryAssigned_pos_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackBinCategoryAssigned_custom_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCreated_onsite_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCreated_offsite_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCompleted_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackTaskCompleted_zeroDuration_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackOffsiteReportPrinted_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReset_all_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackReset_category_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutEvent_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutResolved_taskCompleted_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_trackStockoutResolved_manualReset_returnsTrue":0.001,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_getValidEventTypes_returnsExpectedEvents":0,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_userIdAccessors_workCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Replenishment\\Services\\ReplenishmentAnalyticsServiceTest::test_getTypeNum_returnsCorrectValue":0,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_formulaCorrect":0.002,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_sortsByScoreDesc":0.002,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_negativeScoreDisplaysZero":0.002,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_zeroRackUnitsExcluded":0.002,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_hybridWindowUsesReplenishmentDate":0.002,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getSalesAggregation_groupsBySubCatID":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getBuysAggregation_groupsBySubCatID":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getTrackingForCategory_returnsLatest":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_getTrackingForCategory_returnsNullWhenNotFound":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_cacheKeyFormat":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_invalidateCache_clearsKeys":0.001,"Tests\\Unit\\Replenishment\\Services\\ReplenishmentScoreServiceTest::test_calculateScores_usesCacheWhenAvailable":0.001,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageReturnsValidStructure":0.001,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageReturnsDefaults":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageOverridePattern":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateValidPhoneNumberMatchesE164Pattern":0.001,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateInvalidPhoneNumberIsActuallyInvalid":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateRandomPhoneNumberReturnsValidFormat":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFormattedPhoneNumberE164":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFormattedPhoneNumberNational":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFormattedPhoneNumberRaw":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFormattedPhoneNumberDefaultsToE164":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageBatchReturnsCorrectCount":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageBatchDefaultCount":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageBatchHasIncrementingTimestamps":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageBatchHasUniqueSids":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageBatchAcceptsOverrides":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageSetHasAllScenarios":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageSetScenariosHaveCorrectStatuses":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageSetFailureScenariosHaveErrors":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTestMessageSetPendingHasNullSid":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateTwilioMessageReturnsTwilioFields":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateVonageMessageReturnsVonageFields":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFloodProtectionErrorReturnsProperStructure":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateFloodProtectionErrorWithCustomLimit":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateValidationErrorReturnsProperStructure":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateSuccessResponseForTwilio":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateSuccessResponseForVonage":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testCreateSuccessResponseDefaultsToTwilio":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testIsValidE164ReturnsTrueForValidNumbers":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testIsValidE164ReturnsFalseForInvalidNumbers":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testStatusConstantsAreDefined":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testProviderConstantsAreDefined":0,"Tests\\Unit\\SMS\\Fixtures\\MessageFixturesTest::testGetE164PatternReturnsValidRegex":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testTwilioStatusCallbackUrlFormat":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testVonageWebhookUrlFormat":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testUrlHandlesTrailingSlashes":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testWebhookSecretFallback":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testChatApiControllerPersistsProviderMessageId":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testProviderNormalization":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testDemoMessageIdFormat":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testSmsResultStructure":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testDemoModeDetection":0,"Tests\\Unit\\SMS\\Phase3BSenderModificationsTest::testDeliveryStatusSentConstant":0,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testProductionStoreIncludesStatusCallback":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDemoStoreDoesNotIncludeStatusCallback":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDemoStoreDispatchesSimulationJob":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testProviderMessageIdReturned":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testStatusCallbackUrlFormat":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testNoStatusCallbackWithoutSecret":0.001,"Tests\\Unit\\SMS\\TwilioTextSenderTest::testDispatchFailureDoesNotBreakFlow":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testProductionStoreUsesUpdatedWebhookUrl":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDemoStoreDispatchesSimulationJob":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testProviderMessageIdReturned":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testWebhookUrlIncludesSecurityToken":0,"Tests\\Unit\\SMS\\VonageTextSenderTest::testCallbackNotSetWhenSecretIsEmpty":0,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDemoModeBlocksExternalSms":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testDispatchFailureDoesNotBreakFlow":0.001,"Tests\\Unit\\SMS\\VonageTextSenderTest::testWebhookUrlFormatWithDifferentBaseUrls":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioQueuedMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioAcceptedMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioSendingMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioSentMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioDeliveredMapsToDelivered":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioFailedMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioUndeliveredMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioCanceledMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioReadMapsToDelivered":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageSubmittedMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageBufferedMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageAcceptedMapsToSent":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageDeliveredMapsToDelivered":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageFailedMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageRejectedMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageExpiredMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageUnknownMapsToFailed":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioError21610ReturnsOptOut":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioError30003ReturnsUnreachable":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioError30004ReturnsBlocked":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioError30005ReturnsUnknownDestination":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testTwilioError30007ReturnsCarrierViolation":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageError1ReturnsThrottled":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testVonageError2ReturnsInvalidNumber":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testUnknownErrorCodeReturnsGeneric":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusMapperTest::testNullErrorCodeReturnsGeneric":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testTwilioDeliveredUpdatesAllSystems":0.005,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testVonageFailedWithErrorDescription":0.002,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testUnmatchedProviderMessageId":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testIdempotencyDuplicateWebhook":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testForwardOnlyStatusTransitions":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testStoreDbFailureNonFatal":0.003,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testAblyFailureNonFatal":0.002,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testTwilioFinalStatusDispatchesCostJob":0.002,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testTwilioNonFinalDoesNotDispatchCostJob":0.005,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testVonageWithCostUpdatesDirectly":0.002,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testErrorMessagePassedThrough":0.003,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testDeliveredToFailedIsRejected":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testFailedToDeliveredIsRejected":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testVonageDuplicateWithCostCapturesCost":0,"Tests\\Unit\\SMS\\Webhooks\\DeliveryStatusProcessorTest::testCentralDbFailureShortCircuits":0,"Tests\\Unit\\SMS\\Webhooks\\MappedStatusTest::testConstructorSetsProperties":0,"Tests\\Unit\\SMS\\Webhooks\\MappedStatusTest::testDeliveredStatusIsFinal":0,"Tests\\Unit\\SMS\\Webhooks\\MappedStatusTest::testFailedStatusIsFinal":0,"Tests\\Unit\\SMS\\Webhooks\\MappedStatusTest::testSentStatusIsNotFinal":0,"Tests\\Unit\\SMS\\Webhooks\\MappedStatusTest::testRawStatusPreserved":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testSuccessFactoryCreatesSuccessfulResult":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testFailureFactoryCreatesFailedResult":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testPartialSuccess":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testUnmatchedMessage":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testDisplayStatusReturnsNullWhenNoMappedStatus":0,"Tests\\Unit\\SMS\\Webhooks\\ProcessingResultTest::testGettersReturnCorrectValues":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testCompareSolversReturnsComparisonData":0.002,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testCompareSolversReturnsNullWhenBothNotAvailable":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testCompareSolversValidatesWeekStartFormat":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testWhyNotReturnsExplanation":0.008,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testWhyNotValidatesRequiredParams":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerPhase8Test::testWhyNotReturnsSuggestionNotFound":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationWithSolverTypeMathChecksPythonHealth":0.002,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationWithSolverTypeMathSkipsRateLimit":0.003,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationWithSolverTypeAiEnforcesRateLimit":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationRejectsInvalidSolverType":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationDefaultsToAiSolverType":0.013,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testGetSuggestionByWeekFiltersBySolverType":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testGetSuggestionByWeekRejectsInvalidSolverType":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testGetUsageReturnsMathUsageUnlimited":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testGetDefaultPrefsReturnsLastSolverType":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testGetDefaultPrefsDefaultsLastSolverTypeToAi":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testLastSolverTypeSavedOnEveryGeneration":0.005,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testHealthCheckReturnsPythonAvailability":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testHealthCheckReportsPythonUnavailable":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationMathWhenPythonUnavailableReturns400":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationMathWhenOrtoolsMissingReturns400":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationAiDoesNotCheckPythonHealth":0.002,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testAllNewEndpointsEnforceAccess":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testRefreshSuggestionsEndpoint":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testRefreshSuggestionsGracefulDegradation":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testRefreshSuggestionsValidation":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testDispatchGenerationResponseFormat":0.002,"Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\AiSchedulingApiControllerSolverTest::testMigrationFileFormat":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\PriorityValidationTest::testAllSixPrioritiesAreAccepted":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\PriorityValidationTest::testInvalidPriorityIsRejected":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\PriorityValidationTest::testPreviouslyMissingPrioritiesAreIncluded":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\PriorityValidationTest::testControllerUsesAvailablePrioritiesConstant":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Controllers\\PriorityValidationTest::testValidationLogicWithInArray":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testGetNameReturnsCorrectIdentifier":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testGetDisplayNameReturnsHumanReadableName":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testGetQueueReturnsLowPriority":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testGetScopeReturnsPerStore":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testGetTimeoutReturns300Seconds":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleExpiresPendingSuggestionsWhenWeekEndPasses":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleDeletesOldSessionLogs":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleDeletesOldJobs":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleDeletesOldMetrics":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleWorksWithoutCacheService":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleReturnsFailureOnException":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleCleanupJobTest::testHandleReturnsAllCleanupStats":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testGetNameReturnsCorrectIdentifier":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testGetDisplayNameReturnsHumanReadableName":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testGetQueueReturnsHighPriority":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testGetScopeReturnsPerStore":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testGetTimeoutReturns90Seconds":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleCallsOptimizerAndSavesSuggestion":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleUpdatesStatusThroughLifecycle":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleHandlesOpenAIErrorsGracefully":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleHandlesRateLimitExceeded":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleCompletesSuccessfullyWithProperStatus":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testHandleSendsEmailNotificationWhenEnabled":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\AiScheduleGenerationJobTest::testFailedMethodNotifiesFailure":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testGetNameReturnsCorrectIdentifier":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testGetDisplayNameReturnsHumanReadableName":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testGetQueueReturnsLowPriority":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testGetScopeReturnsPerStore":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testGetTimeoutReturns600Seconds":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandleSkipsWhenBackfillNotNeeded":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandlePerformsBackfillWhenNeeded":0.114,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandleSavesMetricsWhenDataFound":0.31,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandleContinuesOnIndividualHourError":0.43,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandleReturnsFailureOnFatalException":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsBackfillJobTest::testHandleReturnsComprehensiveStats":0.114,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testGetNameReturnsCorrectIdentifier":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testGetDisplayNameReturnsHumanReadableName":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testGetQueueReturnsDefaultPriority":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testGetScopeReturnsPerStore":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testGetTimeoutReturns120Seconds":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testHandleCollectsStaffingDataFromTimePunches":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testHandleHandlesNoDataGracefully":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\HourlyMetricsCollectorJobTest::testHandleDefaultsToPreviousHour":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testGetNameReturnsSolverScheduleGeneration":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testGetQueueReturnsHigh":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testGetTimeoutReturns660":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleExtractsPayloadAndCallsOptimizer":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleReportsSuccessOnCompletion":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleReportsFailureOnSolverException":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testJobSendsEmailNotificationWhenEnabled":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testAblyChannelFormat":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleReturnsFailureForMissingPayload":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleReturnsFailureForInvalidWeekStartFormat":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Jobs\\SolverScheduleGenerationJobTest::testHandleReportsFailureOnGenericException":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testFromRowHydratesSolverType":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testFromRowDefaultsSolverTypeToAi":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testIsMathOptimizerReturnsCorrectBoolean":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testToDbArrayIncludesSolverType":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testJsonSerializeIncludesSolverType":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testSetSolverTypeReturnsSelf":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobSolverTest::testDefaultSolverTypeOnNewInstanceIsAi":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testFromRowCreatesEntityWithAllFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testStatusTransitionPendingToProcessing":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testStatusTransitionProcessingToCompleted":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testStatusTransitionProcessingToFailed":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testToDbArrayReturnsCorrectFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testJsonSerializeReturnsApiFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiJobTest::testGenerateJobIdCreatesValidUuid":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testFromRowHydratesSolverFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testFromRowDefaultsSolverTypeToAi":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testIsMathOptimizerReturnsTrueForMath":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testIsAiSchedulerReturnsTrueForAi":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testGetScorecardReturnsDecodedJson":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testGetConstraintReportReturnsDecodedJson":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testGetScorecardReturnsNullWhenEmpty":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testToDbArrayIncludesSolverFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testJsonSerializeIncludesSolverFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testFromCacheArrayHydratesSolverFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testSettersReturnSelfForChaining":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionSolverTest::testToApiArrayIncludesSolverFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testFromRowCreatesEntityWithAllFields":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testToDbArrayReturnsCorrectFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testJsonSerializeReturnsApiFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testIsExpiredReturnsTrueWhenWeekEndPassed":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testIsExpiredReturnsFalseWhenWeekEndInFuture":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testStatusTransitions":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testMarkDismissed":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testIsExpiredReturnsFalseWhenWeekEndIsToday":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testIsExpiredReturnsTrueWhenWeekEndWasYesterday":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testFromCacheArrayCreatesEntityFromJsonSerializeFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testFromCacheArrayHandlesAppliedSuggestion":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\AiSuggestionTest::testFromCacheArrayHandlesDismissedSuggestion":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testFromArrayParsesFilledAssignment":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testFromArrayParsesUnfilledAssignment":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testIsFilledReturnsTrueWhenEmployeeIdPresent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testIsFilledReturnsFalseWhenEmployeeIdNull":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testJsonSerializeReturnsArray":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverAssignmentTest::testFromArrayThrowsOnMissingShiftId":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testFromArrayParsesFeasibleReport":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testFromArrayParsesInfeasibleReport":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testGetInfeasibilityExplanationDataReturnsNullForFeasible":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testGetInfeasibilityExplanationDataReturnsStructuredDataForInfeasible":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverConstraintReportTest::testJsonSerializeReturnsArray":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testFromArrayParsesOptimalResultCorrectly":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testFromArrayParsesInfeasibleResultCorrectly":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsOptimalReturnsTrueForOptimalStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsOptimalReturnsFalseForNonOptimalStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsFeasibleReturnsTrueForOptimalStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsFeasibleReturnsTrueForFeasibleStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsFeasibleReturnsFalseForInfeasibleStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsInfeasibleReturnsTrueForInfeasibleStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testIsInfeasibleReturnsFalseForOptimalStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testGetFilledCountReturnsCorrectCount":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testGetUnfilledCountReturnsCorrectCount":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverResultTest::testJsonSerializeReturnsArray":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFromArrayCreatesScorecard":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFairnessRatingHighWhenCvBelow015":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFairnessRatingMediumWhenCvBetween015And030":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFairnessRatingLowWhenCvAbove030":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFairnessRatingBoundaryAt015":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testFairnessRatingBoundaryAt030":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testOptimalityStatusWhenGapIsZero":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testOptimalityStatusWhenGapIsNonZero":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testCoveragePercentCalculation":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testCompareWithReturnsCorrectWinners":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testToApiArrayExcludesInternalDetails":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SolverScorecardTest::testJsonSerializeReturnsArray":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testFromArrayCreatesValidAssignment":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testFromArrayHandlesNullEmployeeId":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testIsUnfillableReturnsTrueWhenNoEmployee":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testIsUnfillableReturnsFalseWhenEmployeeAssigned":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testToArrayReturnsCorrectFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testJsonSerializeMatchesToArray":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testGetDurationHoursCalculatesCorrectly":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Models\\SuggestionAssignmentTest::testOvertimeFlag":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetDefaultsReturnsNullWhenNoDefaultsSaved":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetDefaultsReturnsNullWhenEmptyString":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetDefaultsReturnsSavedDefaults":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetDefaultsHandlesNullCustomInstructions":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testSaveDefaultsPersistsOptimizationPreferences":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testSaveDefaultsCanSaveWithNullCustomInstructions":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testSaveDefaultsFiltersInvalidPriorityKeys":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testSaveDefaultsPreservesPriorityOrder":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testSaveDefaultsCanSaveEmptyPrioritiesArray":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetAvailablePrioritiesReturnsAllOptions":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testGetAvailablePrioritiesReturnsCorrectStructure":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testAvailablePrioritiesConstantContainsExpectedValues":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testPriorityLabelsAreHumanReadable":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiDefaultPrefsServiceTest::testPriorityDescriptionsProvideMeaningfulContext":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_publishesToCorrectAblyChannel":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_publishesJobCompleteEvent":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_payloadMatchesSddFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_doesNotSendEmailWhenNotRequested":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_sendsEmailWhenRequested":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_emailContainsScheduleSummary":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_doesNotSendEmailWithoutAddress":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyFailure_publishesErrorToAblyChannel":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyFailure_publishesToCorrectChannel":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyFailure_sendsEmailWhenRequested":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyFailure_doesNotSendEmailWhenNotRequested":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyScheduleApplied_publishesToScheduleUpdatesChannel":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyScheduleApplied_publishesAiScheduleAppliedEvent":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifyScheduleApplied_payloadMatchesSddFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_handlesAblyFailureGracefully":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_handlesEmailFailureGracefully":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::service_worksWithDisabledAbly":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::constructor_validatesTypeNumFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::constructor_acceptsValidTypeNumFormats":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiNotificationServiceTest::notifySuccess_emailContainsReviewUrl":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testRateLimitCheckHappensBeforeGeneration":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testRateLimitExceptionContainsCorrectInfo":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testEmployeeFilteringRemovesTerminatedEmployees":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testEmployeeFilteringRemovesEmployeesAtMaxHours":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testEmployeeFilteringExcludesOwnersNotInIncludeList":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testIncludeOwnerIdsOptionOverridesSavedPrefs":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testRoleQualificationEnforcementForOpeningClosing":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testHoursOverridePerScheduleFunctionality":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testSuggestionEnrichmentLaborCosts":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testSuggestionEnrichmentOvertimeFlags":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testDoubleBookingPreventedSameDay":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testSameEmployeeDifferentDaysAllowed":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testAvailabilityEnforcedShiftOnUnavailableDay":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testAvailabilityAcceptsEmployeeOnAvailableDay":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testNoAvailabilityRecordsTreatedAsAlwaysAvailable":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testAvailabilityRejectsShiftOutsideTimeWindow":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testErrorHandlingWhenOpenAIFails":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testGenerateSuggestionsFullOrchestration":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiScheduleOptimizerTest::testSuggestionCachedAfterCreation":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testCacheStoresSuggestionInRedisWithCorrectKey":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testCacheStoresSerializedSuggestionData":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testCacheSetsCorrectTtlBasedOnWeekEnd":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testCacheTtlHasMinimumOneHour":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testGetReturnsNullOnCacheMiss":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testGetReturnsSuggestionOnCacheHit":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testGetReturnsNullForInvalidJsonData":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testGetDoesNotQueryDatabaseCacheFirst":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testInvalidateRemovesCacheOnApply":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testInvalidateRemovesCacheOnDismiss":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testInvalidateDoesNotThrowOnMissingKey":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testHasReturnsTrueWhenCacheExists":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testHasReturnsFalseWhenCacheDoesNotExist":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testHasReturnsFalseAfterInvalidation":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testKeyFormatFollowsSddSpecification":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testFullRoundTripPreservesAllSuggestionData":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testMultipleStoresDoNotInterfere":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\AiSuggestionCacheServiceTest::testDifferentWeeksDoNotInterfere":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testGenerateResolutionsAnalyzesConflictTypes":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testGeneratesMultipleOptionsPerUnfilledShift":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testEachOptionHasDescriptionTradeoffActionability":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testResolutionIncludesConflictType":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testReRunWithAllowOvertimeIncreasesHoursMax":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testReRunWithRelaxRoleLowersMinRoleId":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testReRunDispatchesNewSolverJobWithAdjustedConstraints":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testGenerateResolutionsGracefulDegradationWithoutLlm":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\InfeasibilityResolutionServiceTest::testManualFillFallbackAlwaysIncluded":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-5-mini is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-5 is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-5-turbo is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"o1 is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"o1-mini is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"o3 is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"o3-mini is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"o4-mini is reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-4o is NOT reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-4o-mini is NOT reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-4-turbo is NOT reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testIsReasoningModelDetectsCorrectly with data set \"gpt-3.5-turbo is NOT reasoning\"":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testBuildRequestPayloadConvertsSystemToDeveloperForReasoningModels":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testBuildRequestPayloadKeepsSystemRoleForNonReasoningModels":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testBuildRequestPayloadOmitsTemperatureForReasoningModels":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testBuildRequestPayloadIncludesStructuredOutputSchema":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testParseResponseHandlesRefusal":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testParseResponseHandlesValidContent":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OpenAIClientTest::testGetNextFallbackModelReturnsCorrectSequence":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnerPrefsReturnsEmptyArrayWhenNoPrefs":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnerPrefsReturnsEmptyArrayWhenEmptyString":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnerPrefsReturnsSavedOwnerIds":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testSaveOwnerPrefsPeristsOwnerToggleState":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testSaveOwnerPrefsCastsIdsToIntegers":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testSaveOwnerPrefsCanSaveEmptyArray":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testAvailabilityStatusAvailableWhenAllDaysCovered":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testAvailabilityStatusUnavailableWhenNoDaysMatch":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testAvailabilityStatusPartialWhenSomeDaysAvailable":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testAvailabilityStatusNoDataWhenNoRecords":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnersWithStatusReturnsOwnerListWithStatus":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnersWithStatusReturnsEmptyWhenNoOwners":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testGetOwnersWithStatusQueriesCorrectRole":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\OwnerPrefsServiceTest::testDisplayNameFallbackToFirstLastName":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testCheckHealthReturnsCorrectHealthStatus":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testCheckHealthHandlesPythonNotFound":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testCheckHealthResultsAreCached":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolveSendsJsonAndParsesOutput":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolveThrowsExceptionOnNonZeroExitCode":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolveThrowsExceptionOnEmptyStdout":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolveThrowsExceptionOnInvalidJson":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolveRespectsTimeoutConfiguration":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\PythonSolverBridgeTest::testSolverExceptionIncludesStderr":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverGenerationStartedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverGenerationCompletedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverAssignmentAcceptedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverAssignmentRejectedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverResultAppliedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverComparisonViewedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverExplanationExpandedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverSuggestionActionedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverInfeasibilityShownLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testSolverWhyNotQueriedLogsCorrectEvent":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testAllEventsHaveTimestamp":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testMultipleEventsAccumulate":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleAnalyticsServiceTest::testClearCapturedLogsResetsState":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGatherProblemDataReturnsCompleteDataStructure":0.002,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGetSchedulableEmployeesExcludesDisabledUsers":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGetSchedulableEmployeesExcludesOwnersByDefault":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGetSchedulableEmployeesIncludesSpecifiedOwners":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGetLockedShiftsIncludesAssignedShifts":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testGetCurrentPeriodHoursOnlyCountsTargetWeek":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testFilterEmployeesExcludesEmployeesAtMaxHours":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testFilterEmployeesAppliesHoursOverrides":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScheduleDataGathererTest::testFilterEmployeesExcludesEmployeesWithFullWeekTimeOff":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testCalculatesTotalLaborCostFromAssignmentsAndPayRates":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testCalculatesFairnessCV":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessRatingHigh":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessRatingMedium":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessExcludesEmployeesWithZeroRequestedHours":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessSingleEmployeeReturnsZeroCV":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessIdenticalHoursReturnsZeroCV":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testCalculatesCoverageCountAndPercentage":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testCalculatesOvertimeWeeklyThreshold":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testCalculatesOvertimeDailyThreshold":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testOvertimeMultipleEmployees":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testOptimalityStatusOptimal":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testOptimalityStatusNearOptimal":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testOptimalityStatusNearOptimalWithSmallGap":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testHandlesEmptyInputs":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testFairnessWithAllEmployeesUnassigned":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\ScorecardServiceTest::testOvertimeWithExistingHours":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testCompareReturnsNullWhenOnlyMathExists":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testCompareReturnsNullWhenOnlyAiExists":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testCompareReturnsSideBySideScorecards":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testWinnerBadgesComputedCorrectlyPerMetric":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testDiffAssignmentsIdentifiesDifferences":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testLlmSummaryGeneratedFromComparisonData":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testGracefulDegradationWhenLlmUnavailable":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testCompareReturnsNullWhenBothSuggestionsLackScorecards":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testCompareAlsoChecksAppliedSuggestions":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverComparisonServiceTest::testToApiArrayIncludesSuggestionIds":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testGenerateExplanationsCallsOpenAIWithStructuredData":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testExplanationIncludesTopFactorsWithNumericData":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testChunkingForLargeAssignmentSets":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testPerChunkFallback":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testGracefulDegradationWhenOpenAIUnavailable":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testFallbackBannerFlagWhenAllChunksFail":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testExplanationsStructureMatchesExpectedFormat":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testEmptyAssignmentsReturnsEmptyArray":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testExactly20AssignmentsUseSingleChunk":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testEmptyLlmResponseFallsBackToStructured":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testPartialLlmResponseFillsMissingWithFallback":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverExplanationServiceTest::testEmptyFactorsReturnsNoFactorMessage":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testGeneratesSuggestionsFromSolverOutput":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testSuggestionsAreTieredImmediateAndLongTerm":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testEachSuggestionHasActionImpactTradeoff":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testGracefulDegradationReturnsEmptyArray":0.001,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testSuggestionsStoredAsJsonInAiSuggestion":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testRefreshSuggestionsRegeneratesBasedOnAcceptedRejected":0,"BuyerKiosk\\Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverImprovementSuggestionServiceTest::testGenerate2To5Suggestions":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testGenerateSuggestionsOrchestratesFullPipeline":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testResultCreatesAiSuggestionWithSolverTypeMath":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testSolverExceptionMarksJobFailed":0.001,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testOpenAIExceptionDoesNotFailJob":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testNonEmptyAssignmentsAreNormalizedToArrays":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testSolverSkipsLlmServicesForSpeed":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverScheduleOptimizerTest::testSuggestionPersistedToDbAndCachedInRedis":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotIdentifiesRoleTooLow":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotIdentifiesHoursLimit":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotIdentifiesAlreadyAssigned":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotSoftPreferenceReason":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotReturnsStructuredExplanation":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testMultipleQueriesWorkWithoutReRunningSolver":0,"Tests\\Unit\\Scheduling\\AiScheduling\\Services\\SolverWhyNotServiceTest::testExplainWhyNotTimeOffBlock":0,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testGetProviderNameReturnsBuyerkiosk":0.002,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testIsEnabledReturnsTrueWhenConfigured":0.001,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testIsEnabledReturnsFalseWhenNone":0.001,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testIsEnabledReturnsFalseForOtherProviders":0.001,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testGetScheduleForDateReturnsEmptyWhenDisabled":0.001,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testGetEmployeeShiftReturnsNullWhenNotScheduled":0.001,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testSyncScheduleToCacheReturnsFalseWhenDisabled":0.002,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testGetScheduleForDateReturnsCorrectFormat":0.002,"Tests\\Unit\\Scheduling\\BuyerKioskScheduleTest::testGetEmployeeShiftFindsCorrectShift":0.002,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckReadAuthReturnsFalseAnd401WhenNoUser":0.002,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckReadAuthReturnsFalseAnd403WhenUserLacksUriSchedulePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckReadAuthReturnsTrueWhenUserHasUriSchedulePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckWriteAuthReturnsFalseAnd401WhenNoUser":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckWriteAuthReturnsFalseAnd403WhenUserLacksUriScheduleManagePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckWriteAuthReturnsTrueWhenUserHasUriScheduleManagePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckConfigAuthReturnsFalseAnd401WhenNoUser":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckConfigAuthReturnsFalseAnd403WhenUserLacksUriScheduleConfigPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCheckConfigAuthReturnsTrueWhenUserHasUriScheduleConfigPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testSendJsonResponseSetsContentTypeAndBody":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testSendJsonResponseSetsCustomStatusCode":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testSendErrorResponseSetsErrorFormatWithCode":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testSendErrorResponseUsesDefaultErrorCode":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturns400WhenStartParameterMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturns400WhenEndParameterMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturns400WhenBothParametersMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturnsShiftsWhenAuthorizedWithValidParams":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetShiftsReturnsEmptyArrayWhenNoShifts":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetCopyPreviewReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetCopyPreviewReturns400WhenSourceStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetCopyPreviewReturns400WhenTargetStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCopyWeekReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCopyWeekReturns403WhenUserLacksWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCopyWeekReturns400WhenSourceWeekStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCopyWeekReturns400WhenTargetWeekStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeesReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeesReturns403WhenUserLacksReadPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetPositionsReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetPositionsReturns403WhenUserLacksReadPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetLaborCostReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetLaborCostReturns400WhenWeekStartMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetConfigReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetConfigReturns403WhenUserLacksReadPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateConfigReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateConfigReturns403WhenUserLacksConfigPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateConfigReturns400WhenRequestBodyEmpty":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetOvertimeConfigReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetOvertimeConfigReturns403WhenUserLacksReadPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateOvertimeConfigReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateOvertimeConfigReturns403WhenUserLacksConfigPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateOvertimeConfigReturns400WhenRequestBodyEmpty":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateOvertimeConfigReturns400WhenRequiredFieldsMissing":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetMyScheduleReturns401WhenNotAuthenticated":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetMyScheduleReturns400WhenProviderNotBuyerkiosk":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetCurrentUserIdReturnsUserId":0.001,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetCurrentUserIdReturnsZeroWhenNoUserId":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetStoreTimezoneReturnsConfiguredTimezone":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetStoreTimezoneReturnsDefaultWhenNotConfigured":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetAllAvailabilityRequiresAuthentication":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetAllAvailabilityRequiresReadPermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetEmployeeAvailabilityRequiresAuthentication":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testUpdateEmployeeAvailabilityRequiresWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testAddAvailabilityExceptionRequiresWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testDeleteAvailabilityExceptionRequiresWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresAuthentication":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresWritePermission":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresEmployeeId":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresStartDate":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresEndDate":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testCreateTimeOffRequiresRequestType":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetTimeOffRequiresDates":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetTimeOffRequiresAuth":0,"Tests\\Unit\\Scheduling\\Controllers\\SchedulingControllerTest::testGetTimeOffValidatesDateFormat":0.001,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_constructor_setsRequiredFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_constructor_setsDefaultValues":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_getters_returnCorrectValues":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_createsInstanceWithCompleteData":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_handlesMinimalRequiredFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_appliesDefaultValuesForOptionalFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_handlesSortOrderZero":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_handlesInactivePosition":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_castsNumericFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_castsBooleanFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_parsesTimestampsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_fromRow_handlesNullTimestamps":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setPositionId_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setName_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setColor_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setSortOrder_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setIsActive_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setters_canBeChainedTogether":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setName_updatesValue":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setColor_updatesValue":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setSortOrder_updatesValue":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_setIsActive_canToggleActiveState":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_returnsCorrectDatabaseFormat":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_convertsBooleanToInteger":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_doesNotIncludePositionId":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_doesNotIncludeTimestamps":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_includesAllRequiredFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_toDbArray_handlesZeroSortOrder":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_returnsCorrectApiFormat":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_includesAllExpectedFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_excludesInternalFields":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_returnsActiveAsBooleanNotInteger":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_handlesNullPositionId":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_jsonSerialize_handlesZeroSortOrder":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_handlesLongNames":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_handlesSpecialCharactersInName":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_handlesVariousColorFormats":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_handlesNegativeSortOrder":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_handlesLargeSortOrder":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_canBeReactivated":0,"Tests\\Unit\\Scheduling\\Models\\PositionTest::test_position_canBeDeactivated":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testConstructorSetsRequiredFields":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testFromRowCreatesShiftFromDatabaseRow":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testGetDurationHoursCalculatesCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testGetDurationHoursWithPartialHours":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testOverlapsDetectsOverlappingShifts":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testIsDeletedReturnsTrueWhenDeletedAtIsSet":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testToDbArrayReturnsCorrectFormat":0,"Tests\\Unit\\Scheduling\\Models\\ShiftTest::testJsonSerializeReturnsApiFormat":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_constructor_setsRequiredFields":0.001,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_constructor_setsOptionalFieldsToNull":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_getters_returnCorrectValues":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_createsInstanceWithCompleteData":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_handlesMinimalRequiredFields":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_hydratesApprovalFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_hydratesEditFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_hydratesEmployeeNameFromJoinedField":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_hydratesEmployeeNameFromFirstAndLastName":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_trimsEmployeeNameWhitespace":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_parsesTimestampsInUTC":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_castsBooleanFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_fromRow_castsNumericFieldsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_typeConstants_areDefined":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_breakTypeConstants_areDefined":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setPunchId_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setShiftId_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setPunchType_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setPunchTime_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setBreakType_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setIsManualEntry_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setManualEntryNote_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setIsUnscheduled_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setIsManagerOverride_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setEmployeeName_returnsThisForChaining":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setters_canBeChainedTogether":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setApproval_setsApproverAndTimestamp":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setApproval_setsApprovalNote":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setApproval_setsApprovedAtTimestampAutomatically":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setEdit_setsEditorTimestampNoteAndNewTime":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setEdit_updatesPunchTime":0.002,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_setEdit_setsEditedAtTimestampAutomatically":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isClockIn_returnsTrueForClockInType":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isClockIn_returnsFalseForOtherTypes":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isClockOut_returnsTrueForClockOutType":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isClockOut_returnsFalseForOtherTypes":0.004,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isBreakPunch_returnsTrueForBreakStartType":0.002,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isBreakPunch_returnsTrueForBreakEndType":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_isBreakPunch_returnsFalseForNonBreakTypes":0.004,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_hasBeenEdited_returnsFalseWhenNoEdit":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_hasBeenEdited_returnsTrueWhenEditedAtIsSet":0.005,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_hasBeenEdited_returnsTrueAfterSetEdit":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_returnsCorrectDatabaseFormat":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_convertsBooleanFieldsToIntegers":0.004,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_formatsTimestampsCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_handlesNullTimestamps":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_includesApprovalFields":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_toDbArray_includesEditFields":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_jsonSerialize_returnsCorrectApiFormat":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_jsonSerialize_formatsTimestampsAsAtom":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_jsonSerialize_includesHasBeenEditedDerivedField":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_jsonSerialize_excludesInternalFields":0,"Tests\\Unit\\Scheduling\\Models\\TimePunchTest::test_jsonSerialize_handlesNullEmployeeName":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testConstructorSetsRequiredFields":0.001,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testFromRowCreatesTimesheetFromDatabaseRow":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testApproveUpdatesStatusAndApprover":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testMarkExportedUpdatesStatus":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testUnlockResetsToPending":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testHasOvertimeReturnsTrueWithOvertimeHours":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testHasOvertimeReturnsTrueWithDoubletimeHours":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testGetHoursVarianceCalculatesCorrectly":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testGetHoursVarianceNegativeWhenUnderScheduled":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testStatusConstants":0,"Tests\\Unit\\Scheduling\\Models\\TimesheetTest::testJsonSerializeReturnsApiFormat":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findByIdReturnsPositionWhenFound":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findAllReturnsAllPositionsOrderedBySortOrder":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findAllReturnsEmptyArrayWhenNoPositions":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findActiveReturnsOnlyActivePositions":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findActiveExcludesInactivePositions":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findByNameReturnPositionCaseInsensitive":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::findByNameReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::createInsertsNewPositionAndReturnsWithId":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::createAutoAssignsSortOrderWhenNotSpecified":0.001,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::createHandlesFirstPositionWhenNoPositionsExist":0.001,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::updateUpdatesExistingPosition":0.001,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::updateThrowsExceptionWhenNoPositionId":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::deactivateSetsIsActiveFlagToFalse":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::deactivateReturnsFalseWhenPositionNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::reactivateSetsIsActiveFlagToTrue":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::reactivateReturnsFalseWhenPositionNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::updateSortOrdersBatchUpdatesMultiplePositions":0.001,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::updateSortOrdersRollsBackOnException":0.001,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::nameExistsReturnsTrueWhenNameExists":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::nameExistsReturnsFalseWhenNameDoesNotExist":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::nameExistsExcludesSpecifiedPosition":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::nameExistsWithExclusionReturnsTrueWhenOtherPositionHasSameName":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::countReturnsAllPositions":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::countReturnsOnlyActivePositionsWhenRequested":0,"Tests\\Unit\\Scheduling\\Repositories\\PositionRepositoryTest::countReturnsZeroWhenNoPositions":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::constructorAcceptsPdoConnection":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdReturnsShiftWhenFound":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdHydratesEmployeeName":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdHydratesPositionNameAndColor":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdExcludesSoftDeletedByDefault":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByIdIncludesSoftDeletedWhenRequested":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByDateRangeReturnsEmptyArrayWhenNoShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByDateRangeReturnsShiftsWithinRange":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByDateRangeExcludesSoftDeletedShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByDateRangeFiltersEnabledEmployeesOnly":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByDateRangeOrdersByShiftStartAndLastName":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByEmployeeAndDateRangeReturnsOnlyShiftsForSpecifiedEmployee":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByEmployeeAndDateRangeExcludesSoftDeletedShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::findByEmployeeAndDateRangeRespectsBoundaries":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::checkOverlapReturnsFalseWhenNoOverlap":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::checkOverlapReturnsTrueWhenOverlapExists":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::checkOverlapExcludesSpecifiedShiftId":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::checkOverlapHandlesTouchingButNotOverlapping":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::createInsertsShiftAndReturnsWithId":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::createThrowsRuntimeExceptionOnOverlap":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::createCallsCheckOverlapBeforeInsert":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::createBindsAllParametersCorrectly":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updateThrowsInvalidArgumentExceptionWithoutShiftId":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updateUpdatesShiftSuccessfully":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updateThrowsRuntimeExceptionOnOverlap":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updatePerformsOptimisticConcurrencyCheck":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updateThrowsStaleWriteWhenUpdatedAtMismatch":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::updateThrowsNotFoundWhenDeleted":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::softDeleteSetsDeletedAtTimestamp":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::softDeleteReturnsTrueOnSuccess":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::softDeleteReturnsFalseWhenAlreadyDeleted":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::softDeleteOnlyAffectsNonDeletedShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::copyWeekCopiesShiftsWithDayOffset":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::copyWeekSkipsConflictsWhenOverwriteIsFalse":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::copyWeekDeletesOverlappingWhenOverwriteIsTrue":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::copyWeekReturnsCorrectCounts":0.002,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::copyWeekHandlesBackwardCopy":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::getCopyPreviewReturnsShiftCount":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::getCopyPreviewIdentifiesConflictsWithoutCopying":0.001,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::getWeeklyScheduledHoursReturnsZeroWhenNoShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::getWeeklyScheduledHoursSumsHoursFromMultipleShifts":0,"Tests\\Unit\\Scheduling\\Repositories\\ShiftRepositoryTest::getWeeklyScheduledHoursOnlyIncludes7DayRange":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByIdReturnsPunchWhenFound":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByIdExcludesDeletedPunches":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByEmployeeAndDateRangeReturnsPunchesForEmployee":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByEmployeeAndDateRangeReturnsEmptyArrayWhenNoPunches":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByDateRangeReturnsAllPunchesInRange":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findByShiftIdReturnsPunchesForShift":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getActiveSessionReturnsClockInPunchWhenEmployeeClockedIn":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getActiveSessionReturnsNullWhenNoActiveSession":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::isOnBreakReturnsTrueWhenLastPunchIsBreakStart":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::isOnBreakReturnsFalseWhenLastPunchIsNotBreakStart":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::isOnBreakReturnsFalseWhenNoPunches":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::createInsertsNewPunchAndReturnsWithId":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::createHandlesManualEntryPunch":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::updateModifiesExistingPunch":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::updateThrowsExceptionWhenNoPunchId":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::softDeleteMarksPunchAsDeleted":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::softDeleteReturnsFalseWhenPunchNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getClockedInEmployeeIdsReturnsArrayOfEmployeeIds":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getClockedInEmployeeIdsReturnsEmptyArrayWhenNoneClockedIn":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getAllClockedInUsersReturnsSameAsGetClockedInEmployeeIds":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getActiveBreakStartPunchReturnsPunchWhenOnBreak":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::getActiveBreakStartPunchReturnsNullWhenNotOnBreak":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::calculateWorkedHoursReturnsCorrectHoursForCompletedSession":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::calculateWorkedHoursExcludesUnpaidBreaks":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::calculateWorkedHoursIncludesUnpaidBreaksWhenRequested":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findEditedPunchesReturnsOnlyEditedPunches":0,"Tests\\Unit\\Scheduling\\Repositories\\TimePunchRepositoryTest::findEditedPunchesReturnsEmptyArrayWhenNoEdits":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::constructorAcceptsPdoConnection":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByIdReturnsTimesheetWhenFound":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByIdHydratesEmployeeName":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByIdHydratesApproverNameFromJoin":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByWeekReturnsEmptyArrayWhenNoTimesheets":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByWeekReturnsAllTimesheetsForWeek":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByWeekExcludesDisabledEmployees":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByWeekOrdersByLastNameAndFirstName":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByEmployeeAndWeekReturnsNullWhenNotFound":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByEmployeeAndWeekReturnsCorrectTimesheet":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByEmployeeAndWeekMatchesOnBothEmployeeIdAndWeekStart":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByStatusFiltersByPendingStatus":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByStatusFiltersByApprovedStatus":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByStatusFiltersByExportedStatus":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByStatusOptionalWeekFilterWorks":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findByStatusOrdersByWeekStartDateDesc":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findWithOvertimeReturnsEmptyWhenNoOvertime":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findWithOvertimeReturnsTimesheetsWithOvertimeHours":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findWithOvertimeReturnsTimesheetsWithDoubletimeHours":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findWithOvertimeOrdersByOvertimeDesc":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateOrCreateCreatesNewWhenNotExists":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateOrCreateUpdatesWhenExists":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateOrCreatePreservesTimesheetIdOnUpdate":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::createInsertsNewTimesheet":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::createReturnsTimesheetWithId":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::createCorrectlyBindsAllParameters":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateThrowsInvalidArgumentExceptionWithoutTimesheetId":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateUpdatesExistingTimesheet":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::updateReturnsUpdatedTimesheet":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveThrowsWhenTimesheetNotFound":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveSetsStatusToApproved":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveSetsApproverIdAndTimestamp":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveMultipleReturnsZeroWhenEmptyArray":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveMultipleApprovesMultipleInSingleQuery":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::approveMultipleOnlyApprovesPendingTimesheets":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::unlockThrowsWhenTimesheetNotFound":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::unlockSetsStatusBackToPending":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::unlockClearsApproverInfo":0.001,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::markExportedReturnsZeroWhenEmptyArray":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::markExportedMarksApprovedAsExported":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::markExportedOnlyAffectsApprovedStatus":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::getWeekSummaryReturnsAggregateCounts":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::getWeekSummarySumsHoursCorrectly":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::getWeekSummarySumsTotalPayCorrectly":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::getWeekSummaryHandlesNullValuesGracefully":0,"Tests\\Unit\\Scheduling\\Repositories\\TimesheetRepositoryTest::findReadyForExportDelegatesToFindByStatusWithApproved":0,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testResolvesBuyerKioskWhenConfigured":0.005,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testResolvesWhenIWorkForLegacyStores":0.003,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testResolvesHomebaseForLegacyStores":0.001,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testExplicitWhenIWorkProviderTakesPrecedence":0.003,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testExplicitHomebaseProviderTakesPrecedence":0,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testReturnsNullWhenNoProviderEnabled":0.003,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testIsEnabledReturnsTrueWithBuyerKiosk":0.003,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testIsEnabledReturnsFalseWithNoProvider":0.003,"Tests\\Unit\\Scheduling\\ScheduleManagerTest::testGetScheduleForDateReturnsPanelCompatibleFormat":0.003,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testGetEffectivePayRateReturnsRateFromDatabase":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testGetEffectivePayRateReturnsDefaultWhenNoRateFound":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testGetEffectivePayRateUsesCorrectDateFormat":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testSetPayRateInsertsNewRecord":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testSetPayRateReturnsNewRecordId":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testGetPayRateHistoryReturnsPayRateRecords":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testGetPayRateHistoryReturnsEmptyArrayWhenNoHistory":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateShiftCostCalculatesCostForShift":0.003,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateShiftCostUsesEffectivePayRate":0.001,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateWeekCostCalculatesBasicWeekWithoutOvertime":0.001,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateWeekCostGroupsShiftsByEmployee":0.001,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateWeekCostIncludesEmployeeBreakdownWithWarnings":0.001,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateDailyHoursFromShiftsGroupsByDate":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateDailyHoursFromShiftsHandlesTimezoneConversion":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateDailyOvertimeSimpleReturnsRegularHoursWhenNoRules":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateDailyOvertimeSimpleCalculatesOvertimeAfterThreshold":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateDailyOvertimeSimpleCalculatesDoubletimeForHighMultiplier":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateOvertimeFromScheduledHoursAppliesWeeklyThreshold":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testCalculateOvertimeFromScheduledHoursAppliesDailyCap":0.001,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultSettersAndGettersWorkCorrectly":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultGetTotalCostCalculatesSum":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultAddEmployeeBreakdownAddsData":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultGetEmployeeBreakdownReturnsArray":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultToArrayReturnsCompleteStructure":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testLaborCostResultToArrayUsesArrayValuesForBreakdown":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testShiftCostResultSettersAndGettersWorkCorrectly":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testShiftCostResultHandlesNullShiftId":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testShiftCostResultToArrayReturnsCorrectStructure":0,"Tests\\Unit\\Scheduling\\Services\\LaborCostCalculatorTest::testShiftCostResultToArrayIncludesNullShiftId":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_constructor_accepts_pdo_and_repository":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_multiple_instances_can_be_created":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getDefaultRulesReturnsFlsaBaseline":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getDefaultRules_returns_valid_structure":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getDefaultRules_returns_preset_type":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getDefaultRules_has_empty_daily_rules_for_flsa":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getDefaultRules_has_absolute_daily_rules_mode":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_returns_default_rules_when_no_row_found":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_caches_rules_by_typenum_and_date":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_different_dates_get_different_cache_entries":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_loads_rule_from_database_when_exists":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_parses_rule_json_correctly":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_loadRulesForStore_uses_current_date_when_effective_date_is_null":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_with_no_punches_returns_zero_hours":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_calculates_regular_hours_from_punch_pairs":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_triggers_weekly_overtime_after_40_hours":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_applies_daily_overtime_with_california_rules":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_applies_doubletime_with_california_rules":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_handles_unpaid_breaks_correctly":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_applies_weekly_countable_hours_cap":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_handles_timezone_conversion":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_tracks_consecutive_days_for_seventh_day_rule":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_sets_result_multipliers_from_rules":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateForWeek_adds_daily_breakdown_for_each_day_worked":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_saveRulesForStore_inserts_new_rule":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_saveRulesForStore_clears_cache_after_save":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getRuleHistory_returns_empty_array_when_no_rules":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getRuleHistory_returns_multiple_rules_in_descending_order":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_getRuleHistory_parses_all_rule_fields_correctly":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_testOvertimeResultCalculatesTotalHours":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_testOvertimeResultWithoutOvertime":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_testOvertimeResultToArrayFormat":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_testDailyBreakdownTracking":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_testOvertimeMultiplierDefaults":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_overtimeResult_hasOvertime_returns_true_when_overtime_greater_than_zero":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_overtimeResult_hasOvertime_returns_true_when_doubletime_greater_than_zero":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_overtimeResult_hasOvertime_returns_false_when_both_zero":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_overtimeResult_all_getters_return_set_values":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_overtimeResult_toArray_includes_all_required_fields":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateDailyOvertime_with_no_rules_returns_all_regular_hours":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateDailyOvertime_applies_daily_rules_correctly":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateDailyOvertime_applies_multiple_thresholds":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateDailyOvertime_applies_consecutive_day_rules":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_calculateDailyOvertime_consecutive_day_rules_only_apply_on_specific_day":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_buildDailySegments_handles_empty_punch_list":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_buildDailySegments_processes_simple_clock_in_out":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_buildDailySegments_subtracts_unpaid_breaks":0,"Tests\\Unit\\Scheduling\\Services\\OvertimeCalculatorTest::test_buildDailySegments_handles_shift_crossing_midnight":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testGetPoliciesReturnsDefaultsWhenNull":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testGetPoliciesReturnsStoredValues":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testGetPoliciesReturnsAutoApproveQualified":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testGetPoliciesThrowsExceptionWhenStoreNotFound":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testGetPoliciesConvertsBooleanCorrectly":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesUpdatesClaimPolicy":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesUpdatesReassignmentPolicy":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesRejectsInvalidClaimPolicy":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesRejectsNonStringClaimPolicy":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesRejectsNonBooleanReassignment":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesCoercesIntegerOneToTrue":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesCoercesStringTrueToTrue":0.002,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesCoercesStringFalseToFalse":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesRejectsInvalidStringForReassignment":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesWithEmptyArrayIsNoOp":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesUpdatesBothPolicies":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesAcceptsAllValidClaimPolicies with data set \"require_all\"":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesAcceptsAllValidClaimPolicies with data set \"auto_approve_qualified\"":0.005,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesAcceptsAllValidClaimPolicies with data set \"first_come\"":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesLogsAuditEntry":0.001,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesDoesNotLogAuditWhenNoChanges":0,"Tests\\Unit\\Scheduling\\Services\\SchedulePoliciesServiceTest::testUpdatePoliciesDoesNotLogAuditWhenValuesUnchanged":0.001,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testApplyRoundingNone":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testApplyRoundingNearest15Minutes":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testApplyRoundingUp15Minutes":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testApplyRoundingDown15Minutes":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testApplyRoundingNearest6Minutes":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testGetDefaultColumnsReturnsExpectedColumns":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testGetSimplifiedColumnsReturnsFewerColumns":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testExportToCsvWithEmptyTimesheets":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testGenerateSummaryCalculatesTotals":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testGenerateSummaryWithRounding":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testValidateForExportDetectsUnapprovedTimesheets":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testValidateForExportDetectsZeroHours":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testValidateForExportPassesWithValidTimesheets":0,"Tests\\Unit\\Scheduling\\Services\\TimesheetExporterTest::testRoundingConstants":0,"Tests\\Unit\\Security\\EncryptionTest::testConstructorAcceptsValidKey":0,"Tests\\Unit\\Security\\EncryptionTest::testConstructorWithShortKey":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithSimpleString":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithEmptyString":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithSpecialCharacters":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithUnicode":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithLongString":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptDecryptRoundtripWithJsonData":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptReturnsBase64EncodedString":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptReturnsDifferentOutputFromInput":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptWithSameInputProducesDifferentOutput":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptedOutputContainsPrependedIV":0,"Tests\\Unit\\Security\\EncryptionTest::testDecryptWithInvalidBase64ReturnsFalse":0,"Tests\\Unit\\Security\\EncryptionTest::testDecryptWithWrongKeyReturnsFalse":0,"Tests\\Unit\\Security\\EncryptionTest::testDecryptWithEmptyStringReturnsFalse":0,"Tests\\Unit\\Security\\EncryptionTest::testDecryptWithTooShortDataReturnsFalse":0,"Tests\\Unit\\Security\\EncryptionTest::testDecryptWithCorruptedCiphertextReturnsFalse":0,"Tests\\Unit\\Security\\EncryptionTest::testDifferentKeyProducesDifferentCiphertext":0,"Tests\\Unit\\Security\\EncryptionTest::testMultipleEncryptDecryptCycles":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptionWorksWithBinaryData":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptionWorksWithOAuthRefreshToken":0,"Tests\\Unit\\Security\\EncryptionTest::testEncryptionWorksWithRealmId":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_returns_non_empty_array":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_each_entry_has_four_elements":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_only_valid_db_keys":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_only_valid_tiers":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_no_duplicate_table_column_pairs":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_includes_system_buys":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_includes_chat_threads":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_includes_all_store_tables":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_includes_critical_main_tables":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_count_is_at_least_35":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_get_connection_returns_main_db":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_get_connection_returns_users_db":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_get_connection_returns_buys_db":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_get_connection_returns_store_db":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_get_connection_throws_on_unknown_key":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_exists_returns_true_when_table_found":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_exists_returns_false_when_table_missing":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_count_affected_rows_returns_count":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_count_affected_rows_returns_null_when_table_missing":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_update_table_executes_update_and_returns_row_count":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_update_table_skips_missing_table":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_inserts_record_when_table_exists":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_skips_when_table_missing":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_log_migration_records_failure_with_notes":0.001,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_has_buys_entries":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_has_main_entries":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_has_store_entries":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_columns_are_non_empty_strings":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_includes_historical_tables":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_support_edit_suggestions_uses_storeTypeNum_column":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_table_definitions_loyalty_groups_uses_store_column":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_redirect_lines_contain_old_and_new_type_num":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_redirect_lines_cover_digitalsign_and_showloop":0,"Tests\\Unit\\Services\\StoreMigrationServiceTest::test_store_directories_returns_six_paths":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testExtractsAuthContextFromApp":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testRequiresStoreAccessContext":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testRequiresAuthContext":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetChannelsDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testCreateChannelDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetChannelDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetMessagesDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testSendMessageDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testEditMessageDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testDeleteMessageDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testAddReactionDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testRemoveReactionDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testMarkReadDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testSearchMessagesDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetMembersDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testAddMemberDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testRemoveMemberDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetMentionsDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetAttachmentDownloadUrlDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testUpdateChannelSettingsDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testMuteChannelDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testGetAblyTokenDelegatesToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testTypeNumMismatchReturns403":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testPassesRoleLevelToWebController":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\MobileStaffChatControllerTest::testStaffRolePassedCorrectly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getChannels_returnsAccessibleChannelsWithUnreadCounts":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getChannels_lazyCreatesDefaultChannelWhenNoneExist":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getChannels_doesNotLazyCreateWhenChannelsExist":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_createsChannelForManager":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_deniesStaffRole":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getMessages_returnsPaginatedMessagesWithReactions":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::sendMessage_createsMessage":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::editMessage_editsWithinWindow":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::editMessage_returns422WhenWindowExpired":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::deleteMessage_softDeletesMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::addReaction_addsReaction":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::addReaction_returns400WhenExceedsLimit":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::removeReaction_removesReactionReturns204":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::markRead_updatesHighWaterMarkReturns204":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::markRead_isIdempotent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::searchMessages_returnsMatchingMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getMembers_returnsMembersAndEligible":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::addMember_addsManualOverride":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::removeMember_removesManualOverride":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getMentions_returnsMentionInbox":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getAttachmentDownloadUrl_returnsSignedUrl":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getAblyToken_returnsScopedToken":0.002,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::updateChannelSettings_updatesRetentionDays":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::muteChannel_togglesMuteReturns204":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getMessages_returns404WhenChannelNotFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::getMessages_returns403WhenNoAccess":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::sendMessage_returns400WhenContentEmpty":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::sendMessage_returns400WhenContentTooLong":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::editMessage_returns403WhenNotOwner":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::searchMessages_returns400WhenQueryTooShort":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_privateWithMembersCreatesAndAddsMembers":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_privateWithoutMembersReturns400":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_privateWithEmptyMembersReturns400":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::createChannel_nonPrivateDoesNotRequireMembers":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::syncMembers_updatesPrivateChannelMembers":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::syncMembers_privateChannelAutoIncludesCaller":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::syncMembers_deniedWithoutPermission":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Controllers\\StaffChatApiControllerTest::syncMembers_nonPrivateChannelStillWorks":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_sendsPushWhenNotMuted":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_skipsWhenChannelMuted":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_mentionOverridesMute":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_batchesRapidMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_failsGracefullyOnFcmError":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_skipsActiveUsers":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_sendsToAllDevices":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_truncatesLongMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_showsImagePreview":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_skipsSystemMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_excludesSender":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::constructor_validatesFirebaseCredentials":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::isEnabled_returnsTrueWhenConfigured":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyMention_sendsPushToMentionedUser":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\ChatPushNotificationServiceTest::notifyNewMessage_reportsInvalidTokens":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageCreated_attemptsInlinePublish":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageCreated_queuesOnAblyFailure":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageCreated_queuesOnTimeout":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageCreated_includesFullMessagePayload":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageUpdated_publishesEvent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishMessageDeleted_publishesEvent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishReactionAdded_publishesEvent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishReactionRemoved_publishesEvent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishReadUpdated_publishesEvent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publish_usesCorrectChannelNaming":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publish_handlesNullAblyGracefully":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::isEnabled_returnsTrueWhenAblyConfigured":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::isEnabled_returnsFalseWhenAblyNull":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishDirect_doesNotQueueToOutbox":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Events\\StaffChatAblyPublisherTest::publishDirect_throwsExceptionOnFailure":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::job_configuration_is_correct":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::handle_fails_without_store_context":0.004,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::handle_fetches_pending_entries":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::processEntry_publishes_to_ably":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::job_uses_configurable_batch_size":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::job_continues_on_entry_failure":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::entry_with_max_attempts_is_marked_failed":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::successful_result_includes_stats":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::job_has_progress_support":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::outbox_repository_implements_backoff":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\ProcessOutboxJobTest::empty_outbox_returns_success":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::job_configuration_is_correct":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::handle_fails_without_store_context":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::job_deletes_messages_older_than_retention":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::forever_retention_channels_are_skipped":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::job_uses_batch_processing":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::delete_order_is_files_then_db":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::attachments_are_cleaned_up":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::reactions_are_deleted_with_messages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::mentions_are_deleted_with_messages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::read_receipts_are_not_deleted":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::audit_log_is_preserved_separately":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::successful_result_includes_stats":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::no_channels_returns_success_with_zero_stats":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::result_includes_summary_message":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::job_continues_on_channel_failure":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Jobs\\StaffChatRetentionJobTest::file_deletion_failure_is_handled_gracefully":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testGetFilePathExistsForInternalUse":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testGetFileNameReturnsServerStorageName":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testIsImageForJpeg":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testIsImageForPng":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testIsImageForGif":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testAllowedMimeTypesConstant":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testMaxFileSizeConstant":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testIsValidMimeTypeMethod":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testIsValidFileSizeMethod":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testSettersForNewAttachment":0,"Tests\\Unit\\StaffChat\\Models\\AttachmentTest::testGetHumanFileSizeMethod":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testFromRowHandlesManualMembership":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testFromRowHandlesAutoMembership":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testFromRowHandlesMutedChannel":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testMembershipTypeConstants":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testIsAutoMembershipMethod":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testIsManualMembershipMethod":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testSettersForNewMember":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testSetMutedUpdatesTimestamp":0,"Tests\\Unit\\StaffChat\\Models\\ChannelMemberTest::testDefaultMembershipTypeIsAuto":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testFromRowHandlesNullableFields":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessPublicChannelAllowsAnyRole":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessManagerChannelDeniesStaffAndShiftLeads":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessManagerChannelAllowsManagerAndAbove":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessOwnerChannelDeniesNonOwners":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessDeniesUnknownAccessLevel":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testCanUserAccessPrivateChannelDeniesAllRoles":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testIsPrivateReturnsTrueForPrivateAccessLevel":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testIsPrivateReturnsFalseForNonPrivateChannels":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testFromRowHandlesPrivateAccessLevel":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testAccessLevelConstants":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testRoleLevelConstants":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testAccessLevelHelperMethods":0,"Tests\\Unit\\StaffChat\\Models\\ChannelTest::testHasForeverRetentionMethod":0,"Tests\\Unit\\StaffChat\\Models\\MentionTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\MentionTest::testFromRowHandlesNullableFields":0,"Tests\\Unit\\StaffChat\\Models\\MentionTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\MentionTest::testSettersForNewMention":0,"Tests\\Unit\\StaffChat\\Models\\MentionTest::testCreateFromDataFactoryMethod":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testFromRowHandlesEditedMessage":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testFromRowHandlesSystemMessage":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanEditWithinWindowBySenderReturnsTrue":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanEditByDifferentUserReturnsFalse":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanEditOutsideWindowReturnsFalse":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanEditDeletedMessageReturnsFalse":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanDeleteBySenderReturnsTrue":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanDeleteByDifferentUserWithoutManagerRoleReturnsFalse":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testCanDeleteByManagerReturnsTrue":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testIsWithinEditWindowWithinTimeReturnsTrue":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testIsWithinEditWindowOutsideTimeReturnsFalse":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsExtractsUsernames":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsWithNoMentionsReturnsEmptyArray":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsEnforcesMaximum":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsDeduplicates":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsDoesNotMatchEmails":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsMixedContentWithEmailsAndMentions":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testParseMentionsAtStartOfMessage":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testSystemMessageCannotBeEdited":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testSystemMessageCannotBeDeleted":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testMessageConstants":0,"Tests\\Unit\\StaffChat\\Models\\MessageTest::testIsFromSystemMethod":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testFromRowHandlesNullableFields":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testEmojiWithSkinToneModifier":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testEmojiWithZwjSequence":0,"Tests\\Unit\\StaffChat\\Models\\ReactionTest::testSettersForNewReaction":0,"Tests\\Unit\\StaffChat\\Models\\ReadReceiptTest::testFromRowHydratesAllColumns":0,"Tests\\Unit\\StaffChat\\Models\\ReadReceiptTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StaffChat\\Models\\ReadReceiptTest::testFromRowWithMinimalData":0,"Tests\\Unit\\StaffChat\\Models\\ReadReceiptTest::testSettersForNewReceipt":0,"Tests\\Unit\\StaffChat\\Models\\ReadReceiptTest::testLastReadMessageIdCanBeUpdated":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::findById_returnsChannelWhenFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::findById_returnsNullWhenNotFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::findByIdWithAccess_returnsNullForUnauthorizedUser":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::findByIdWithAccess_allowsAccessWithManualOverride":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::findAllForUser_filtersChannelsByRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::create_insertsNewChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::update_modifiesExistingChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::getOrCreateDefaultChannel_returnsExistingDefault":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::getOrCreateDefaultChannel_createsIfMissing":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ChannelRepositoryTest::getOrCreateDefaultChannel_updatesIsDefaultWhenPublicExistsButNotDefault":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::findByChannelPaginated_returnsMessagesInDescendingOrder":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::findByChannelPaginated_respectsBeforeParameter":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::findByChannelPaginated_clampsLimitTo100":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::insert_createsNewMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::update_editsMessageContent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::update_failsForDeletedMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::softDelete_setsIsDeletedFlag":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::findByClientMessageId_returnsExistingMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::findByClientMessageId_returnsNullWhenNotFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\MessageRepositoryTest::search_returnsMatchingMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::insert_createsNewOutboxEntry":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::getPending_returnsPendingAndFailedEntries":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::getPending_respectsExponentialBackoff":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::markProcessing_claimsEntry":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::markProcessing_returnsFalseIfAlreadyClaimed":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::markCompleted_setsCompletedStatus":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::markFailed_setsFailedStatusWithError":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::getExhausted_returnsEntriesExceedingMaxAttempts":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\OutboxRepositoryTest::getStats_returnsCountsByStatus":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::add_insertsNewReaction":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::add_returnsFalseWhenLimitReached":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::add_allowsExistingEmojiEvenAtLimit":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::remove_deletesReaction":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::remove_returnsFalseIfNotFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::countUniqueByMessage_returnsCorrectCount":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReactionRepositoryTest::getGroupedByMessage_returnsGroupedReactions":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::upsert_usesGreatestForMonotonicUpdate":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::upsert_isIdempotent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getByChannelAndUser_returnsReceipt":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getByChannelAndUser_returnsNullWhenNotFound":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getUnreadCountForUser_returnsCorrectCount":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getUnreadCountForUser_countsAllWhenNeverRead":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getByChannelForUsers_returnsMappedByUserId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getLastReadMessageIdsForUser_returnsEmptyForEmptyChannelIds":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getLastReadMessageIdsForUser_returnsMappedByChannelId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Repositories\\ReadReceiptRepositoryTest::getLastReadMessageIdsForUser_returnsZeroForChannelsWithNoReceipts":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_acceptsJpegFile":0.003,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_acceptsPngFile":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_acceptsGifFile":0.002,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_rejectsFileLargerThan10MB":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_rejectsUnsupportedFormat":0.014,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_rejectsFileWithWrongExtension":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_validatesMimeTypeFromContent":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getSignedUrl_generatesUrlWithSignatureAndExpiry":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_returnsTrueForValidSignature":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_returnsFalseForExpiredSignature":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_returnsFalseForInvalidSignature":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_returnsTrueWithMatchingTypeNum":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_returnsFalseForCrossStoreAttack":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::validateSignature_typeNumIsCaseInsensitive":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getSignedUrl_includesTypeNumInUrl":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::cleanup_deletesAttachmentFilesAndDbRecords":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::storagePath_includesTypeNumAndChannelId":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::upload_handlesSanitizingDangerousFilenames":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getFilePath_returnsNullForNonExistentAttachment":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getFilePath_returnsPathForExistingAttachment":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getFilePath_returnsNullForPathTraversalAttack":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::getFilePath_returnsNullForDotDotTraversal":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::staticGetters_returnCorrectValues":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\AttachmentServiceTest::exceptionClasses_returnCorrectHttpStatusCodes":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_publicChannelAllowsAnyEmployee":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_publicChannelAllowsAllRoleLevels":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_managerChannelDeniesStaff":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_managerChannelDeniesShiftLead":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_managerChannelAllowsManager":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_managerChannelAllowsOwner":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_manualOverrideGrantsAccessToLowerRole":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_manualOverrideGrantsAccessToShiftLead":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_ownerChannelDeniesManager":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_ownerChannelAllowsOwner":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_filtersBasedOnRole":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_returnsManagerChannelForManager":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_includesManuallyGrantedChannels":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_roleChangeImmediatelyReflected":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_dynamicComputationNoStateStored":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_workbookUserOnlySeesPublicChannels":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_workbookUserDeniedManagerChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_demotionLosesManagerChannelAccess":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_promotionGainsManagerChannelAccess":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_demotionWithOverrideKeepsAccess":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_demotionWithOverrideShowsAccessViaOverride":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canCreateChannel_allowsManagerAndOwner":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canCreateChannel_deniesShiftLeadAndStaff":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_ownerCanManageAnyChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_managerCannotManageOwnerChannelCreatedByOther":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_managerCanManageOwnOwnerChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageMembership_allowsManagerAndOwner":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageMembership_deniesShiftLeadAndStaff":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_returnsfalseForNonExistentChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_returnsfalseForInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_returnsEmptyArrayWhenNoChannels":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getRequiredRoleLevel_returnsCorrectLevels":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getRequiredRoleLevel_returnsZeroForUnknownAccessLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canDeleteMessage_authorCanDeleteOwnMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canDeleteMessage_managerCanDeleteAnyMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canDeleteMessage_staffCannotDeleteOthersMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canDeleteMessage_deniedWithoutChannelAccess":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canCreateChannel_deniesInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageMembership_deniesInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_deniesInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getAccessibleChannels_returnsEmptyForInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_deniesForUnknownAccessLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_deniesForUnknownAccessLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_doesNotConsultOverridesForInvalidRole":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_ownerCanManageAnyChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_managerCanManagePublicChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_managerCannotManageOwnerChannelCreatedByOther":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_staffCannotManageAnyChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_deniesInvalidRoleLevel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_privateChannelDeniedWithoutMembership":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_privateChannelAllowedWithManualMembership":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canAccessChannel_privateChannelDeniesAllRolesWithoutMembership":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_privateChannelCreatorCanManage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_privateChannelNonCreatorMemberCannotManage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_privateChannelManagerMemberCanManage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannel_privateChannelManagerNonMemberCannotManage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::isValidAccessLevel_includesPrivate":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_privateChannelCreatorCanManageMembership":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::canManageChannelMembership_privateChannelNonCreatorStaffDenied":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChannelAccessServiceTest::getRequiredRoleLevel_privateReturnsZero":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_triggersAblyAndPush":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_handlesMentions":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_skipsSystemMessagePush":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_continuesPushOnAblyFailure":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageUpdated_triggersAblyOnly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageDeleted_triggersAblyOnly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onReactionAdded_triggersAbly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onReactionRemoved_triggersAbly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onReadUpdated_triggersAbly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_excludesSenderFromRecipients":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_handlesNullChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::onMessageCreated_handlesEmptyMemberList":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\ChatNotificationServiceTest::notifyBatch_handlesMultipleMessages":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_validatesContentLength":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_rejectsEmptyContent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_rejectsWhitespaceOnlyContent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_rejectsContentExceedingMaxLength":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_parsesAndStoresMentions":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_enforcesMaxMentions":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_handlesDuplication":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_throwsExceptionForCrossUserClientMessageIdCollision":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_createsAuditLogEntry":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_withinWindowSucceeds":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_outsideWindowThrowsOutOfBoundsException":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_byNonSenderThrowsUnauthorizedException":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_createsAuditLogWithPreviousContent":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_throwsExceptionWhenUpdateFails":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_preservesOriginalContentAcrossMultipleEdits":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_softDeletesAndCreatesAuditLog":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_bySenderSucceeds":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_byManagerOnEmployeeMessageSucceeds":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_byNonSenderNonManagerThrowsUnauthorizedException":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_systemMessageThrowsUnauthorizedException":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_systemMessageThrowsUnauthorizedException":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createSystemMessage_createsWithSystemSenderType":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createMessage_withNoMentionsDoesNotCallMentionRepo":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::editMessage_notFoundThrowsInvalidArgumentException":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::deleteMessage_notFoundThrowsInvalidArgumentException":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\MessageServiceTest::createSystemMessage_validatesContentLength":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::rateLimitResult_allowedCreatesCorrectResult":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::rateLimitResult_blockedCreatesCorrectResult":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::rateLimitResult_clampsNegativeValues":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkMessageLimit_allowsFirstRequest":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkMessageLimit_allowsUpToLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkMessageLimit_blocksAfterLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkMessageLimit_perChannelIsolation":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkMessageLimit_perUserIsolation":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkUploadLimit_allowsFirstRequest":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkUploadLimit_allowsUpToLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkUploadLimit_blocksAfterLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkUploadLimit_isGlobalPerUser":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkReactionLimit_allowsFirstRequest":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkReactionLimit_allowsUpToLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::checkReactionLimit_blocksAfterLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::blockedResult_includesRetryAfterHeader":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::allowedResult_hasZeroRetryAfter":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::serviceAllowsRequestsWhenRedisNull":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::serviceReturnsFullRemainingWhenRedisUnavailable":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::isRedisAvailable_returnsCorrectState":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::constants_matchPrdSpecification":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::remainingCount_decrementsCorrectly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::remainingCount_reachesZeroAtLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::clearLimit_resetsRateLimit":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::clearLimit_returnsFalseWhenRedisUnavailable":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::differentLimitTypes_areIsolated":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::handlesHighUserIds":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::handlesZeroChannelId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::handlesMultipleRapidRequests":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::redisException_triggersGracefulDegradation":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::redisException_returnsFullRemainingForAllTypes":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\RateLimitServiceTest::redisException_duringZcard_triggersFailOpen":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::constructor_setsTypeNumAndUserId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::constructor_allowsNullUserId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::setUserId_updatesUserId":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageSent_emitsEventWithAllProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageSent_handlesSystemMessageType":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageRead_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageRead_handlesZeroMessageCount":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackReactionAdded_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackReactionAdded_handlesVariousEmojis":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"public\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"manager\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllAccessLevels with data set \"owner\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"owner\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"manager\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"shift_lead\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelCreated_handlesAllRoleLevels with data set \"staff\"":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelViewed_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackChannelViewed_handlesEmptyChannel":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageEdited_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageEdited_handlesImmediateEdit":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageDeleted_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMessageDeleted_handlesImmediateDelete":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackImageUploaded_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackImageUploaded_handlesLargeFiles":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMentionSent_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackMentionSent_handlesMaxMentions":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackPushOpened_emitsEventWithRequiredProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::trackPushOpened_handlesHighMessageIds":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::getValidEventTypes_returnsAllTenEventTypes":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeTypeNumInProperties":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeUserIdInPayload":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_includeTimestampInIso8601Format":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allEvents_handleNullUserId":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::track_returnsFalseForInvalidEventType":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatAnalyticsServiceTest::allTrackingMethods_returnTrueOnSuccess":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withAssignee_triggersSystemMessage":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withoutAssignee_doesNotTriggerMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withAssignee_createsRealMention":0.003,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_includesEmojiPrefix":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_publishesToAbly":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_publicNote_triggersSystemMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_managerOnlyNote_doesNotTriggerMessage":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_includesAuthorName":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_includesEmojiPrefix":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_storesLinkToSource":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_returnsFalseWhenNoDefaultChannel":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_returnsFalseWhenNoDefaultChannel":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_catchesMessageServiceExceptions":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_catchesChannelRepoExceptions":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_withEmptyTitle_usesFallback":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withUnknownUser_fallsBackToName":0.001,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onNoteCreated_worksWithoutNotificationService":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withUsername_usesAtFormat":0,"BuyerKiosk\\Tests\\Unit\\StaffChat\\Services\\StaffChatEventIntegrationTest::onTaskCreated_withoutUsername_usesFullName":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testGetConfigReturnsStoreInfoAndHours":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testGetConfigRequiresPermission":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testGetConfigRejectsWrongStoreGroup":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHoursValidatesAndSaves":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHoursReturnsValidationErrors":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCreateHolidayCreatesNewHoliday":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCreateHolidayRejectsDuplicateDate":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayModifiesExisting":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testDeleteHolidayRemovesHoliday":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayReturns404ForNonExistent":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testDeleteHolidayReturns404ForNonExistent":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCheckAuthRejectsUnauthenticatedUser":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testGetConfigHandlesServiceException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHoursRejectsMissingBody":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHoursHandlesGeneralException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCreateHolidayRejectsMissingDate":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCreateHolidayValidatesHoursForOpenHoliday":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testCreateHolidayHandlesGeneralException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayRejectsWrongStore":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayRejectsMissingBody":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayValidatesHoursWhenChangingToOpen":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayHandlesNotFoundRuntimeException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateHolidayHandlesGeneralException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testDeleteHolidayRejectsWrongStore":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testDeleteHolidayHandlesGeneralException":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateStoreAccountPasswordQueriesUsersTable":0.238,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateStoreAccountPasswordReturns404WhenNotFound":0.001,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateStoreAccountPasswordRejectsShortPassword":0,"Tests\\Unit\\StoreConfig\\Controllers\\StoreConfigControllerTest::testUpdateStoreAccountPasswordRejectsMissingPassword":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testFromDefaultCreatesInstanceWithDefaultSource":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testFromDayOverrideCreatesInstanceWithDayOverrideSource":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testFromDayOverrideSetsNullTimesWhenClosed":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testFromHolidayCreatesInstanceWithHolidaySource":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testFromHolidaySetsNullTimesWhenClosed":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testClosedFactoryCreatesClosedInstance":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testToArrayReturnsCorrectStructure":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testToArrayWithClosedHours":0,"Tests\\Unit\\StoreConfig\\EffectiveHoursTest::testConstantsHaveCorrectValues":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByTypeNumReturnsAllHolidays":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByTypeNumReturnsEmptyArrayWhenNoHolidays":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByTypeNumWithFutureOnlyFiltersPastDates":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByDateReturnsHolidayWhenExists":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByDateReturnsNullWhenNotFound":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByIdReturnsHolidayWhenExists":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::findByIdReturnsNullWhenNotFound":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::createInsertsNewHoliday":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::createThrowsExceptionWhenDateMissing":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::createThrowsExceptionForDuplicateDate":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::createHandlesPartialHolidayHours":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::updateModifiesExistingHoliday":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::updateThrowsExceptionWhenNotFound":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::updateReturnsExistingWhenNoChanges":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::deleteRemovesHoliday":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::deleteReturnsFalseWhenNotFound":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::deleteByTypeNumRemovesAllStoreHolidays":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHolidayRepositoryTest::deleteByTypeNumReturnsZeroWhenNoHolidays":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByTypeNumReturnsIndexedByDayOfWeek":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByTypeNumReturnsEmptyArrayWhenNoHours":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByTypeNumComputesUsesDefaultCorrectly":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByDayReturnsHoursForSpecificDay":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByDayReturnsNullWhenNotFound":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByDayThrowsExceptionForInvalidDayOfWeek":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::findByDayThrowsExceptionForNegativeDayOfWeek":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::upsertByTypeNumInsertsNewHours":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::upsertByTypeNumDeletesAllWhenEmptyArray":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::upsertByTypeNumThrowsExceptionForInvalidDayOfWeek":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::upsertByTypeNumHandlesMultipleDays":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::upsertByTypeNumDeletesRemovedDays":0.001,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::deleteByTypeNumRemovesAllStoreHours":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::deleteByTypeNumReturnsZeroWhenNoHours":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::getDayNameReturnsCorrectName":0,"Tests\\Unit\\StoreConfig\\Repositories\\StoreHoursRepositoryTest::getDayNameReturnsUnknownForInvalidDay":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetEffectiveHoursReturnsHolidayOverrideWhenExists":0.005,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetEffectiveHoursReturnsDayOverrideWhenNoHoliday":0.005,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetEffectiveHoursReturnsDefaultWhenNoOverrides":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetEffectiveHoursReturnsDefaultWhenDayUsesDefault":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRejectsCloseBeforeOpen":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRejectsEqualTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursAcceptsValidTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRejectsInvalidFormat":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursAcceptsClosedWithNullTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRequiresBothTimesWhenNotClosed":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeTimeZeroPadsSingleDigitHours":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeTimePreservesValidFormat":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeTimeHandles12HourFormat":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetConfigReturnsCorrectStructure":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testGetConfigIncludesDayOverrides":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRefreshesMetaInReturnedConfig":0.005,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRejectsByDayMissingDays":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursComputesUsesDefaultServerSide":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeTimeHandlesUnparsableFormats":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeTimeHandlesPatternMatch":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRequiresDefaultOpenTime":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRequiresDefaultCloseTime":0.003,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRejectsByDayNotArray":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testUpdateHoursRollsBackOnException":0.004,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadRejectsMissingDayOfWeek":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadRejectsInvalidDayOfWeek":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadRejectsDuplicateDays":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadRejectsMismatchedTimesProvided":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadRejectsNonStringTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadSkipsDaysUsingDefault":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadHandlesBothNullTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testNormalizeByDayPayloadValidatesDayTimes":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testInvalidateCacheCallsCustomInvalidator":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRejectsInvalidCloseTimeFormat":0,"Tests\\Unit\\StoreConfig\\StoreHoursServiceTest::testValidateHoursRejectsMissingOpenTime":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_listAlerts_returns_paginated_alerts_with_summary":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_listAlerts_passes_filter_params_to_service":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_validates_and_returns_created_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_returns_400_for_invalid_input":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_createAlert_returns_400_for_empty_body":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_updated_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_404_for_nonexistent_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_updateAlert_returns_400_for_invalid_data":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_deactivates_and_returns_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_activates_and_returns_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_toggleAlert_returns_404_for_nonexistent_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_getAcknowledgments_returns_dashboard_stats":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_getAcknowledgments_returns_404_for_nonexistent_alert":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsAdminControllerTest::test_generic_exception_returns_500":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getPending_returns_unacknowledged_alerts":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getPending_returns_empty_for_no_store_assignments":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_records_acknowledgment_and_returns_success":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_duplicate_returns_success_idempotent":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getHistory_returns_alert_history_with_ack_status":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getHistory_respects_limit_param":0,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_getPending_error_returns_500":0.001,"Tests\\Unit\\SystemAlerts\\Controllers\\SystemAlertsStaffControllerTest::test_acknowledge_error_returns_500":0.001,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publishCreated_publishes_to_global_channel_for_all_target_type":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publishCreated_publishes_to_each_store_channel_for_specific_target":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publishUpdated_publishes_alert_updated_event":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publishDeactivated_publishes_minimal_payload":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publish_skipped_when_throttled":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_publish_graceful_failure_when_ably_unavailable":0,"Tests\\Unit\\SystemAlerts\\Events\\AlertAblyPublisherTest::test_isEnabled_returns_true_when_ably_client_provided":0,"Tests\\Unit\\SystemAlerts\\Models\\AlertAcknowledgmentTest::test_constructor_hydrates_all_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\AlertAcknowledgmentTest::test_constructor_casts_numeric_strings_to_int":0,"Tests\\Unit\\SystemAlerts\\Models\\AlertAcknowledgmentTest::test_constructor_defaults_for_missing_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\AlertAcknowledgmentTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_constructor_hydrates_all_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_constructor_handles_null_optional_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_fromRow_factory_creates_instance":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_toArray_includes_null_cta_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\PendingAlertTest::test_constructor_defaults_for_missing_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_hydrates_all_fields_from_array":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_handles_minimal_data_with_defaults":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_parses_target_stores_from_comma_separated_string":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_handles_target_stores_as_array":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_handles_empty_target_stores_string":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_casts_id_and_createdBy_to_int":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_constructor_casts_isActive_to_bool":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isExpired_returns_false_when_expiresAt_is_null":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isExpired_returns_false_when_expiresAt_is_in_future":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isExpired_returns_true_when_expiresAt_is_in_past":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isTargetedTo_returns_true_for_all_target_type":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isTargetedTo_returns_true_when_store_in_specific_targets":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isTargetedTo_returns_false_when_store_not_in_specific_targets":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_isTargetedTo_returns_false_for_specific_with_empty_stores":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toArray_includes_all_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toArray_preserves_null_optional_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toAblyPayload_returns_minimal_fields":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toAblyPayload_uses_alertId_not_id":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toAblyPayload_includes_cta_fields_when_present":0,"Tests\\Unit\\SystemAlerts\\Models\\SystemAlertTest::test_toAblyPayload_includes_null_cta_fields_when_absent":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_create_inserts_acknowledgment":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_create_duplicate_is_idempotent":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_deleteAllForAlert_removes_all_acks":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_hasUserAcknowledged_returns_true_when_exists":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_hasUserAcknowledged_returns_false_when_not_exists":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getStatsForAlert_returns_correct_counts_for_all_target":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getStatsForAlert_returns_correct_counts_for_specific_target":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getAcknowledgedUsers_returns_user_list":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getPendingUsers_returns_users_who_have_not_acknowledged":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getDismissedAt_returns_timestamp_when_acknowledged":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getDismissedAt_returns_null_when_not_acknowledged":0,"Tests\\Unit\\SystemAlerts\\Repositories\\AcknowledgmentRepositoryTest::test_getPendingUsers_for_specific_stores":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_create_inserts_alert_and_returns_entity":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_create_with_specific_targets_inserts_store_targets":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_findById_returns_alert_with_target_stores":0,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_findById_returns_null_for_nonexistent":0,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_findPendingForUser_excludes_acknowledged_alerts":0,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_findPendingForUser_includes_global_and_targeted_alerts":0,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_toggleActive_flips_isActive_flag":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_update_modifies_alert_fields":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_update_changes_store_targets":0.001,"Tests\\Unit\\SystemAlerts\\Repositories\\SystemAlertRepositoryTest::test_findActive_returns_active_non_expired_alerts":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_validates_creates_and_publishes":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_with_specific_targets":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_sanitizes_html_body":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_missing_title":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_title_too_long":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_invalid_severity":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_invalid_display_type":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_specific_without_stores":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_javascript_cta_url":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_throws_on_data_cta_url":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_allows_https_cta_url":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_createAlert_allows_relative_cta_url":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_updateAlert_updates_resets_acks_and_publishes":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_updateAlert_throws_when_alert_not_found":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_updateAlert_sanitizes_body_if_present":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_toggleActive_deactivates_and_publishes_deactivated":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_toggleActive_reactivates_and_publishes_created":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_toggleActive_throws_when_alert_not_found":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getPendingForUser_delegates_to_repo":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getPendingForUser_returns_empty_for_no_stores":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_acknowledgeAlert_delegates_to_ack_repo":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getAlertHistory_returns_targeted_alerts_with_ack_status":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getAcknowledgmentDashboard_returns_full_stats":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getAcknowledgmentDashboard_throws_when_not_found":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_listForAdmin_delegates_to_repo":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_strips_script_tags":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_strips_iframe_tags":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_strips_event_handlers":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_preserves_allowed_tags":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_cta_url_rejects_ftp_protocol":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_cta_url_rejects_vbscript_protocol":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_cta_url_allows_empty_string":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_cta_url_rejects_http":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_updateAlert_preserves_targets_when_only_targetStores_sent":0.001,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getAlertHistory_includes_dismissedAt":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_getAlertHistory_null_dismissedAt_for_unacknowledged":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_strips_vbscript_protocol_in_body_links":0,"Tests\\Unit\\SystemAlerts\\Services\\SystemAlertServiceTest::test_sanitization_strips_file_protocol_in_body_links":0,"Tests\\Unit\\Task\\TaskGroupTest::test_task_group_requires_group_name":0,"Tests\\Unit\\Task\\TaskGroupTest::test_task_group_name_is_sanitized":0,"Tests\\Unit\\Task\\TaskGroupTest::test_task_group_id_is_integer":0,"Tests\\Unit\\Task\\TaskGroupTest::test_get_all_returns_array":0,"Tests\\Unit\\Task\\TaskGroupTest::test_get_all_groups_are_sorted_by_name":0,"Tests\\Unit\\Task\\TaskGroupTest::test_task_count_returns_integer":0.001,"Tests\\Unit\\Task\\TaskGroupTest::test_task_count_can_be_zero":0,"Tests\\Unit\\Task\\TaskGroupTest::test_cannot_delete_group_with_tasks":0.001,"Tests\\Unit\\Task\\TaskGroupTest::test_can_delete_empty_group":0,"Tests\\Unit\\Task\\TaskGroupTest::test_group_data_structure_is_correct":0,"Tests\\Unit\\Task\\TaskGroupTest::test_get_by_id_finds_correct_group":0,"Tests\\Unit\\Task\\TaskGroupTest::test_get_by_name_finds_correct_group":0,"Tests\\Unit\\Task\\TaskGroupTest::test_create_returns_new_id":0,"Tests\\Unit\\Task\\TaskGroupTest::test_update_returns_boolean":0,"Tests\\Unit\\Task\\TaskGroupTest::test_delete_returns_boolean":0,"Tests\\Unit\\Task\\TaskGroupTest::test_group_name_common_values":0,"Tests\\Unit\\Task\\TaskGroupTest::test_group_with_tasks_has_positive_count":0,"Tests\\Unit\\Task\\TaskGroupTest::test_empty_group_list_returns_empty_array":0,"Tests\\Unit\\Task\\TaskReorderTest::test_sort_order_starts_at_zero":0,"Tests\\Unit\\Task\\TaskReorderTest::test_sort_order_is_sequential":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_updates_sort_order":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_data_structure_is_valid":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_with_group_change":0,"Tests\\Unit\\Task\\TaskReorderTest::test_json_encode_reorder_data":0,"Tests\\Unit\\Task\\TaskReorderTest::test_empty_reorder_array_is_handled":0,"Tests\\Unit\\Task\\TaskReorderTest::test_invalid_json_is_detected":0,"Tests\\Unit\\Task\\TaskReorderTest::test_missing_task_id_is_detected":0,"Tests\\Unit\\Task\\TaskReorderTest::test_missing_sort_order_is_detected":0,"Tests\\Unit\\Task\\TaskReorderTest::test_sort_order_values_are_integers":0,"Tests\\Unit\\Task\\TaskReorderTest::test_task_id_values_are_integers":0,"Tests\\Unit\\Task\\TaskReorderTest::test_group_id_is_optional":0,"Tests\\Unit\\Task\\TaskReorderTest::test_bulk_reorder_maintains_order":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_within_single_group":0,"Tests\\Unit\\Task\\TaskReorderTest::test_move_task_to_different_group":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_response_success":0,"Tests\\Unit\\Task\\TaskReorderTest::test_reorder_response_error":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_start_date_format_is_valid":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_end_date_format_is_valid":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_time_of_day_24h_format":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_time_of_day_with_seconds":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_null_start_date_means_immediate":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_null_end_date_means_indefinite":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_null_time_of_day_means_any_time":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_end_date_after_start_date":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_same_start_and_end_date_is_valid":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_format_time_to_12h":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_daily":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_weekdays":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_weekends":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_custom":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_single_day":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_get_days_summary_never":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_task_is_active_today":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_task_not_yet_started":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_task_has_ended":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_day_of_week_matching":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_task_recurs_today":0,"Tests\\Unit\\Task\\TaskSchedulingTest::test_task_does_not_recur_today":0,"Tests\\Unit\\Task\\TaskTest::test_task_has_default_priority_of_normal":0,"Tests\\Unit\\Task\\TaskTest::test_task_has_default_sort_order_of_zero":0,"Tests\\Unit\\Task\\TaskTest::test_priority_levels_are_correctly_defined":0,"Tests\\Unit\\Task\\TaskTest::test_recur_on_string_format_is_valid":0,"Tests\\Unit\\Task\\TaskTest::test_time_of_day_format_is_valid":0,"Tests\\Unit\\Task\\TaskTest::test_date_format_is_valid":0,"Tests\\Unit\\Task\\TaskTest::test_null_scheduling_fields_are_acceptable":0,"Tests\\Unit\\Task\\TaskTest::test_get_days_summary_returns_daily_for_all_days":0,"Tests\\Unit\\Task\\TaskTest::test_get_days_summary_returns_weekdays":0,"Tests\\Unit\\Task\\TaskTest::test_get_days_summary_returns_weekends":0,"Tests\\Unit\\Task\\TaskTest::test_get_days_summary_returns_never_for_empty":0,"Tests\\Unit\\Task\\TaskTest::test_task_create_requires_task_name":0,"Tests\\Unit\\Task\\TaskTest::test_task_create_requires_task_group":0,"Tests\\Unit\\Task\\TaskTest::test_task_update_preserves_scheduling_fields":0,"Tests\\Unit\\Task\\TaskTest::test_sort_order_is_non_negative_integer":0,"Tests\\Unit\\Task\\TaskTest::test_priority_is_between_1_and_3":0,"Tests\\Unit\\Task\\TaskTest::test_task_data_is_properly_sanitized":0,"Tests\\Unit\\Task\\TaskTest::test_comment_can_be_empty":0,"Tests\\Unit\\Task\\TaskTest::test_comment_can_have_content":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchCreatesExecutionAndPushesToQueue":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchWithPayload":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchWithScheduledFireAt":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchReturnsExistingExecutionOnIdempotencyConflict":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchWithUniqueIdempotencyKeyCreatesNew":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testGenerateScheduledIdempotencyKeyForGlobalJob":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testGenerateScheduledIdempotencyKeyForPerStoreJob":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testGenerateManualDispatchIdempotencyKey":0.001,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDeterministicKeyForSameScheduledTime":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchPerStoreCreatesExecutionForEachStore":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchPerStoreSkipsExistingIdempotencyKeys":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchManualSetsCorrectTriggerType":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchManualGeneratesIdempotencyKeyWhenNotProvided":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchManualUsesProvidedIdempotencyKey":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchToCorrectQueue":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchWithStoreContext":0,"Tests\\Unit\\TaskEngine\\Application\\JobDispatcherTest::testDispatchReturnsExistingExecutionWhenInsertViolatesUniqueConstraint":0.001,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testUnknownCommandShowsUsage":0.002,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testNoCommandShowsUsage":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testHelpShowsUsage":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testSchedulerRunInvokesScheduler":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testSchedulerRunReportsLockFailure":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testWorkerStartInitializesWorker":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testWorkerManagerShowsStatus":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobDispatchRequiresJobName":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobDispatchCreatesExecution":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobDispatchWithStoreOption":0.001,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobDispatchFailsForNonExistentJob":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobListOutputsJobDefinitions":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobListShowsEnabledOnly":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobListShowsScheduledOnly":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testJobListEmptyShowsMessage":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testQueueStatusShowsQueueDepths":0,"Tests\\Unit\\TaskEngine\\Commands\\TaskCommandTest::testQueueStatusShowsProcessingCounts":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListJobsReturns401WhenNoUser":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListJobsReturns403WhenMissingPermission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListJobsReturns403WhenMissingStoreAccess":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListJobsReturns400WhenTypeNumInvalid":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListJobsReturnsJobsArray":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testGetJobReturns404WhenNotFound":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testUpdateJobReturns400OnInvalidJsonBody":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testUpdateJobReturns400OnInvalidCronExpression":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testDispatchJobReturns400WhenJobDisabled":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testDispatchJobReturns403WhenDispatchingOtherStore":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testDispatchJobReturnsExecutionOnSuccess":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListExecutionsReturns400OnInvalidStatus":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testGetExecutionReturns404WhenTypeNumDoesNotMatch":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testRetryExecutionReturns400WhenExecutionNotFailed":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiControllerTest::testListGlobalExecutionsSupportsTypeNumOnlyFilter":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_accepts_token_from_x_csrf_token_header":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_allows_token_reuse_for_ajax_calls":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_accepts_token_from_json_body":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiCsrfTest::test_checkCsrf_rejects_missing_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_updateJob_rejects_missing_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_updateJob_rejects_invalid_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_updateJob_accepts_valid_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_dispatchJob_rejects_missing_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_dispatchJob_accepts_valid_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_retryExecution_rejects_missing_csrf_token":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_retryExecution_accepts_valid_csrf_token":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_getStats_requires_uri_task_engine_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_listJobs_requires_uri_task_engine_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_listExecutions_requires_uri_task_engine_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_listWorkers_requires_uri_task_engine_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_getGlobalStats_requires_uri_task_engine_global_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_listGlobalExecutions_requires_uri_task_engine_global_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_listGlobalWorkers_requires_uri_task_engine_global_permission":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_getStats_rejects_user_without_store_access":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_getExecution_filters_by_store":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_retryExecution_filters_by_store":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_dispatchJob_prevents_cross_store_dispatch":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_all_store_endpoints_require_authentication":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_all_global_endpoints_require_authentication":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_rejects_invalid_typeNum_format":0.001,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_rejects_invalid_jobId":0,"Tests\\Unit\\TaskEngine\\Controllers\\TaskApiSecurityTest::test_rejects_negative_jobId":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_beforeHandle_is_called_before_handle":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_afterHandle_receives_result_on_success":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_failed_hook_receives_exception":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_setContext_and_getContext":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_hasStore_returns_false_for_global_job":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_progress_updates_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_progress_callback_is_invoked":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_handle_returns_success_result":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_handle_throws_on_failure":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getName_returns_job_identifier":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getDisplayName_returns_human_readable_name":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getQueue_returns_queue_name":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getScope_returns_scope":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getTimeout_returns_timeout_seconds":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getAttempt_returns_current_attempt":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_isRetry_returns_false_for_first_attempt":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getPayload_returns_execution_payload":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getConfig_returns_job_config_value":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getTimeout_from_context":0,"Tests\\Unit\\TaskEngine\\Domain\\BaseJobTest::test_getMaxRetries_from_context":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseEveryMinuteExpression":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseSpecificTimeExpression":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseWithRanges":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseWithSteps":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseWithLists":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseWithMixedNotation":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"too few fields\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"too many fields\"":0.001,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"empty string\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid minute\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid hour\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid day of month\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid month\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid day of week\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"invalid range\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testParseThrowsExceptionForInvalidExpression with data set \"non-numeric\"":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueEveryMinute":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueAtSpecificMinute":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueAtSpecificHour":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueWithRange":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueWithStep":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueWithList":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueOnSpecificDayOfMonth":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueInSpecificMonth":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueIgnoresSeconds":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testIsDueHandlesDayOfWeekSunday":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeFromCurrentMinute":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeSpecificTime":0.003,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeFromBeforeDueTime":0.001,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeWithStep":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeSkipsWeekend":0.008,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeHandlesMonthRollover":0.042,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeHandlesYearRollover":0.037,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetNextRunTimeWithTimezone":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetPreviousRunTime":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetPreviousRunTimeFromBeforeDue":0.002,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testGetMultipleRunTimes":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testLastDayOfMonth":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testToString":0,"Tests\\Unit\\TaskEngine\\Domain\\CronExpressionTest::testMatchesAtMethod":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_fromRow_hydrates_all_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_fromRow_hydrates_store_context":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_fromRow_parses_json_payload":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_fromRow_parses_json_result":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_fromRow_handles_null_payload":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markStarted_changes_status_to_running":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markStarted_throws_if_not_pending":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markCompleted_changes_status_to_completed":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markCompleted_calculates_duration":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markCompleted_throws_if_not_running":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markFailed_changes_status_to_failed":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markFailed_with_string_error":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markCancelled_changes_status_to_cancelled":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_markCancelled_works_from_pending":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_updateProgress_sets_progress_value":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_updateProgress_clamps_to_0_100":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_canRetry_returns_true_when_attempts_remaining":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_canRetry_returns_false_when_max_reached":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_canRetry_returns_false_if_not_failed":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_prepareForRetry_resets_state":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_hasStoreContext_returns_false_for_global":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionEntityTest::test_hasStoreContext_returns_true_for_store":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_all_expected_statuses_exist":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_from_string_returns_correct_enum":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_pending_is_not_terminal":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_running_is_not_terminal":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_completed_is_terminal":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_failed_is_terminal":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_cancelled_is_terminal":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_pending_can_transition_to_running":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_pending_can_transition_to_cancelled":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_running_can_transition_to_completed":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_running_can_transition_to_failed":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_running_can_transition_to_cancelled":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_completed_cannot_transition_to_anything":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_failed_can_transition_to_pending_for_retry":0,"Tests\\Unit\\TaskEngine\\Domain\\ExecutionStatusTest::test_cancelled_cannot_transition_to_anything":0,"Tests\\Unit\\TaskEngine\\Domain\\JobAbortedExceptionTest::testExceptionHasDefaultMessage":0,"Tests\\Unit\\TaskEngine\\Domain\\JobAbortedExceptionTest::testExceptionWithCustomMessage":0,"Tests\\Unit\\TaskEngine\\Domain\\JobAbortedExceptionTest::testExceptionIsThrowable":0,"Tests\\Unit\\TaskEngine\\Domain\\JobAbortedExceptionTest::testExceptionExtendsRuntimeException":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testShouldAbortReturnsFalseWhenNoCallbackSet":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testShouldAbortReturnsFalseWhenCallbackReturnsFalse":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testShouldAbortReturnsTrueWhenCallbackReturnsTrue":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testCheckAbortDoesNothingWhenNotAborted":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testCheckAbortThrowsExceptionWhenAborted":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testAbortCallbackCanCheckExternalState":0,"Tests\\Unit\\TaskEngine\\Domain\\JobContextAbortTest::testCheckAbortWithNoCallbackDoesNotThrow":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_fromRow_hydrates_all_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_fromRow_handles_null_schedule":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_fromRow_parses_json_config":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_fromRow_handles_null_config":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_fromRow_handles_invalid_json_config":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isGlobalScope_returns_true_for_global":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isPerStoreScope_returns_true_for_per_store":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isEnabled_returns_true_when_enabled":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isEnabled_returns_false_when_disabled":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isScheduled_returns_true_with_schedule":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isScheduled_returns_false_without_schedule":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getNotifyEmailsList_returns_array":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getNotifyEmailsList_trims_whitespace":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getNotifyEmailsList_returns_empty_for_null":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getConfigValue_returns_value_if_exists":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getConfigValue_returns_default_if_missing":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_getNextRunTime_returns_next_run_or_null":0.003,"Tests\\Unit\\TaskEngine\\Domain\\JobDefinitionEntityTest::test_isDue_returns_true_when_next_run_is_in_past":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_success_creates_successful_result":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_success_with_data_stores_data":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_success_with_message_stores_message":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_failure_creates_failed_result":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_failure_with_data_stores_both":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_failure_from_exception_captures_details":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_toArray_returns_all_properties":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_toArray_failure_includes_error":0,"Tests\\Unit\\TaskEngine\\Domain\\JobResultTest::test_toJson_returns_valid_json":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsReturnsJobsDueAtCurrentTime":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsExcludesNotYetDue":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsExcludesDisabled":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsExcludesManualOnlyJobs":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testCatchUpReturnsMissedFireTimes":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testCatchUpRespectsWindowLimit":0.001,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testCatchUpHandlesNoMissedJobs":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testCatchUpHandlesFirstTimeExecution":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsIncludesPerStoreJobs":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsWithMultipleJobs":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testGetDueJobsRespectsTimezone":0,"Tests\\Unit\\TaskEngine\\Domain\\ScheduleEvaluatorTest::testFireTimeIsNormalizedToMinutePrecision":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunAcquiresRedisLock":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunExitsWhenLockNotAcquired":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunReleasesLockOnCompletion":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunReleasesLockOnException":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testLockOnlyReleasedIfUuidMatches":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunDispatchesDueJobs":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunDispatchesPerStoreJobsToAllStores":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunLogsDispatchedJobs":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunPromotesDelayedRetries":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunPromotesAllQueues":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunRequeuesStaleReservations":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testStaleThresholdIsConfigurable":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testIdempotencyKeyForScheduledJob":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testIdempotencyKeyForPerStoreJob":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testCatchUpWindowPassedToEvaluator":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testDefaultCatchUpWindowIsTenMinutes":0,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunContinuesOnDispatchFailure":0.001,"Tests\\Unit\\TaskEngine\\Domain\\SchedulerTest::testRunReturnsStatistics":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_fromRow_hydrates_all_fields":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_fromRow_parses_datetime_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_heartbeat_updates_last_heartbeat":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_isHealthy_returns_true_for_recent_heartbeat":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_isHealthy_returns_false_for_stale_heartbeat":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_isHealthy_returns_false_if_stopped":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_getSecondsSinceHeartbeat_calculates_correctly":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_markBusy_changes_status_and_sets_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_markBusy_updates_heartbeat":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_markIdle_changes_status_and_clears_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_markStopped_changes_status":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_incrementJobsProcessed_increases_counter":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_incrementJobsFailed_increases_counter":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_getTotalJobsHandled_sums_processed_and_failed":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_shouldRecycle_returns_true_when_exceeds_limit":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_shouldRecycle_returns_false_when_under_limit":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerEntityTest::test_create_generates_new_worker":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getTargetWorkerCount_returns_configured_value":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_setTargetWorkerCount_updates_value":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getHealthyWorkerCount_returns_correct_count":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getWorkersNeeded_returns_difference":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getWorkersNeeded_returns_zero_when_at_target":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getWorkersNeeded_returns_negative_when_over_target":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getStaleWorkers_returns_workers_without_heartbeat":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_cleanupStaleWorkers_removes_stale_workers":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_cleanupStaleWorkers_returns_zero_when_no_stale":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_shouldSpawnWorkers_returns_true_when_below_target":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_shouldSpawnWorkers_returns_false_when_at_target":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getStatus_returns_summary":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getWorkerDetails_returns_all_workers":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_markAllStopped_calls_repository":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getWorkerScript_returns_path":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getStaleThreshold_returns_configured_value":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getSpawnCommand_returns_php_command":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerManagerTest::test_getSpawnCommand_includes_background_flag":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_registers_worker_on_startup":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_heartbeat_updates_worker_status":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_reserves_job_from_queue":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_returns_null_when_no_jobs_available":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_processes_job_successfully":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_marks_execution_as_running_before_handle":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_calls_lifecycle_hooks_in_order":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_marks_execution_as_failed_on_exception":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_calls_failed_hook_on_exception":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_records_error_message_and_trace":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_marks_execution_as_failed_on_failure_result":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_records_error_message_on_failure_result":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_increments_failed_counter_on_failure_result":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_acks_job_after_success":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_acks_job_after_failure":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_skips_already_completed_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_skips_cancelled_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_skips_nonexistent_execution":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_shouldRun_returns_true_initially":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_requestShutdown_sets_shouldRun_false":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_shutdown_marks_worker_stopped":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_shouldRecycle_returns_true_after_n_jobs":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_getJobsProcessed_tracks_count":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerProcessTest::test_getJobsFailed_tracks_failures":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_all_expected_statuses_exist":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_from_string_returns_correct_enum":0.001,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_idle_is_active":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_busy_is_active":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_stopped_is_not_active":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_idle_is_available_for_work":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_busy_is_not_available_for_work":0,"Tests\\Unit\\TaskEngine\\Domain\\WorkerStatusTest::test_stopped_is_not_available_for_work":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_debug_logs_at_debug_level":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_info_logs_at_info_level":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_warning_logs_at_warning_level":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_error_logs_at_error_level":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_log_includes_context_array":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_log_accepts_empty_context":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_log_method_accepts_any_level":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_logs_are_bound_to_execution_id":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_getLogs_retrieves_from_repository":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_getLogs_uses_default_limit":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_logException_logs_error_with_trace":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_logException_includes_custom_message":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionLoggerTest::test_flush_persists_buffered_logs":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_find_returns_execution_when_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_find_returns_null_when_not_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findByJobDefinitionId_returns_executions":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findByStatus_returns_matching_executions":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findByIdempotencyKey_returns_execution":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findByIdempotencyKey_returns_null_if_not_found":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_create_inserts_execution":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_update_modifies_execution":0.001,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_countByStatus_returns_count":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_countByStatusSince_returns_count_in_timeframe":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findRunningForWorker_returns_executions":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findOrphaned_returns_stale_running_executions":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\ExecutionRepositoryTest::test_findByStoreAndStatus_filters_by_typeNum":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findAll_returns_all_job_definitions":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findAll_returns_empty_array_when_no_jobs":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findById_returns_job_when_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findById_returns_null_when_not_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findByName_returns_job_when_exists":0.001,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findByName_returns_null_when_not_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findEnabled_returns_only_enabled_jobs":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_findScheduled_returns_jobs_with_schedules":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_save_inserts_new_job":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_update_modifies_existing_job":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\JobDefinitionRepositoryTest::test_update_returns_false_if_not_found":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPushAddsPayloadToQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPushToMultipleQueues":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPushPreservesPayloadOrder":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveReturnsNullWhenQueueEmpty":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveReturnsPayloadFromQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveMovesToProcessingList":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveStoresReservationTimestampMetadata":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveChecksQueuesInPriorityOrder":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testReserveFallsBackToLowerPriorityQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testAckRemovesFromProcessingList":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testAckReturnsFalseWhenNotInProcessingList":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testAckOnlyRemovesMatchingPayload":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPushDelayedAddsToSortedSet":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPromoteDueMovesItemsToQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testPromoteDueReturnsZeroWhenNothingDue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetQueueDepthReturnsCorrectCount":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetQueueDepthReturnsZeroForEmptyQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetProcessingDepthReturnsCorrectCount":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetDelayedDepthReturnsCorrectCount":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetAllQueueDepths":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testGetStaleProcessingItemsReturnsOldReservations":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testRequeueStaleItemMovesBackToQueue":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\RedisQueueAdapterTest::testImplementsQueueInterface":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_find_returns_worker_when_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_find_returns_null_when_not_exists":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findAll_returns_all_workers":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findActive_returns_non_stopped_workers":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findHealthy_returns_workers_with_recent_heartbeats":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findHealthy_uses_custom_job_timeout":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findStale_returns_workers_with_old_heartbeats":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_findStale_uses_custom_job_timeout":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_register_inserts_new_worker":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_updateHeartbeat_updates_timestamp":0.001,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_update_modifies_worker":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_unregister_deletes_worker":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_unregister_returns_false_if_not_found":0.001,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_countByStatus_returns_count":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_countActive_returns_non_stopped_count":0,"Tests\\Unit\\TaskEngine\\Infrastructure\\WorkerRepositoryTest::test_markAllStopped_updates_all_workers":0,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_event_phase_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_event_phase_job_requires_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_employee_sync_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_employee_sync_job_requires_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_employee_sync_job_skips_stores_without_provider":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_quickbooks_sync_job_configuration":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_quickbooks_sync_job_requires_store":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_quickbooks_sync_job_skips_unconfigured_stores":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_fivestars_sync_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_fivestars_sync_job_requires_store":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_fivestars_sync_job_skips_unconfigured_stores":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_aggregate_stats_job_configuration":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\ConcreteJobsTest::test_aggregate_stats_job_is_global":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::getName_returnsCorrectJobName":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::getDisplayName_returnsCorrectDisplayName":0.001,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::getQueue_returnsDefaultQueue":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::getScope_returnsGlobalScope":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::getTimeout_returns30Seconds":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::handle_missingProviderMessageId_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::handle_missingTypeNum_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::handle_emptyPayload_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::constructor_acceptsTrackerAndRepository":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::constructor_acceptsNullDependencies":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::jobConfiguration_isConsistent":0.001,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::handle_validPayloadWithBothFields_doesNotReturnMissingData":5.005,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\DemoDeliverySimulationJobTest::handle_defaultsProviderWhenNotProvided":5.02,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_job_configuration":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_job_is_global_scope":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_job_uses_low_priority_queue":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_returns_success_when_no_tokens":0.003,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_validates_tokens_in_batches":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_removes_invalid_tokens":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_reports_cleanup_statistics":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_handles_rate_limiting":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_paginates_through_all_tokens":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_respects_batch_size_config":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_continues_after_individual_validation_errors":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FcmTokenCleanupJobTest::test_handle_fails_when_dependencies_not_set":0.004,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_job_is_per_store_scope":0,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_requires_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_skips_stores_without_fivestars_configured":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_processes_pending_points_records":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_success_with_zero_records":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_uses_idempotency_service_for_each_record":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_skips_duplicates_and_increments_skipped_count":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_cached_response_for_duplicates":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_continues_on_individual_record_failure":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_handles_api_exception_for_record":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_reports_progress_after_each_record":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_respects_abort_signal":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FiveStarsPointsPostingJobTest::test_returns_job_result_with_counts":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_job_configuration":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_requires_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_failed_handler_does_not_throw":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_failed_handler_works_without_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\FloorPlanTaskGeneratorJobTest::test_job_is_registered_in_task_command_factory":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_job_name_is_homepage_stats":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_job_display_name_is_descriptive":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_job_runs_on_low_queue":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_job_scope_is_global":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_job_timeout_is_adequate_for_cross_db_queries":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_stores_count_rounds_to_nearest_15":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_dollar_value_formats_millions_with_prefix":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_dollar_value_handles_sub_million_values":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_dollar_value_handles_small_values":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_buys_count_formats_millions":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_franchise_brands_returns_plain_number":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_years_returns_static_value":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_format_uptime_returns_percentage":0,"Tests\\Unit\\TaskEngine\\Jobs\\HomepageStatsJobTest::test_expected_stat_keys_are_defined":0,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_job_is_global_scope":0,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_returns_success_when_no_pending_notifications":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_processes_pending_notifications":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_respects_batch_size_config":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_skips_already_claimed_notifications":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_marks_notification_sent_on_success":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_marks_failed_with_retry_on_retryable_error":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_handles_firebase_errors_gracefully":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_sends_to_all_user_devices":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_skips_user_with_no_devices":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_processes_multiple_notifications":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_reports_progress":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\PushNotificationQueueJobTest::test_handle_fails_when_dependencies_not_set":0.002,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_job_configuration":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_removes_expired_slides_from_store":0.004,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_updates_global_schedule_entries":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_handles_multiple_stores":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_no_op_when_nothing_expired":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_succeeds_with_no_stores":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_continues_on_store_error":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_failed_handler_does_not_throw":0,"Tests\\Unit\\TaskEngine\\Jobs\\SlideExpirationJobTest::test_job_is_registered_in_task_command_factory":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::getName_returnsCorrectJobName":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::getDisplayName_returnsCorrectDisplayName":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::getQueue_returnsDefaultQueue":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::getScope_returnsGlobalScope":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::getTimeout_returns30Seconds":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_missingProviderMessageId_returnsSuccess":0.001,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_missingProvider_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_emptyPayload_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_nonTwilioProvider_skipsProcessing":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_providerVonage_skipsProcessing":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_usageRecordNotFound_returnsSuccess":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::handle_twilioMessage_queriesRepository":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::constructor_acceptsTrackerAndRepository":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::constructor_acceptsNullDependencies":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsCostLookupJobTest::jobConfiguration_isConsistent":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::getName_returnsCorrectJobName":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::getDisplayName_returnsCorrectDisplayName":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::getQueue_returnsDefaultQueue":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::getScope_returnsGlobalScope":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::getTimeout_returns300Seconds":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_noStaleRecords_returnsSuccessWithZeroCount":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_vonageStaleRecord_marksCostUnknown":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_multipleVonageRecords_marksAllUnknown":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_unknownProvider_treatsAsNonTwilio":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_returnsCorrectDataStructure":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::handle_repositoryThrowsException_returnsFailure":0.001,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::constructor_acceptsAllDependencies":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::constructor_acceptsNullDependencies":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::jobConfiguration_isConsistent":0,"BuyerKiosk\\Tests\\Unit\\TaskEngine\\Jobs\\SmsStaleCostSweepJobTest::jobConfiguration_hasSufficientTimeout":0,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_job_configuration":0,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_requires_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_checks_out_stranded_buys":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_skips_unprocessed_buys":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_handles_empty_queue":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_all_already_checked_out":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_mixed_buy_states":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_result_includes_store_typenum":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_failed_handler_does_not_throw":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_failed_handler_works_without_store_context":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\StrandedBuyCleanupJobTest::test_job_is_registered_in_task_command_factory":0,"Tests\\Unit\\TaskEngine\\Jobs\\TextMarketingRemovalTest::test_sms_queue_job_class_does_not_exist":0,"Tests\\Unit\\TaskEngine\\Jobs\\TextMarketingRemovalTest::test_sms_queue_processor_not_in_registry":0.001,"Tests\\Unit\\TaskEngine\\Jobs\\TextMarketingRemovalTest::test_no_seller_marketing_jobs_registered":0,"Tests\\Unit\\TaskEngine\\Jobs\\TextMarketingRemovalTest::test_jobby_sms_config_does_not_exist":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_register_adds_job_class_to_registry":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_registerAll_adds_multiple_jobs":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_has_returns_false_for_unregistered_job":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_resolve_returns_job_instance":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_resolve_throws_for_unregistered_job":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_resolve_creates_new_instance_each_time":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_cannot_instantiate_arbitrary_class":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getClassName_returns_registered_class":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getClassName_returns_null_for_unregistered":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getAll_returns_all_registered_jobs":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getNames_returns_all_job_names":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_count_returns_number_of_registered_jobs":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getJobInfo_returns_job_metadata":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getJobInfo_returns_null_for_unregistered":0,"Tests\\Unit\\TaskEngine\\Registry\\JobRegistryTest::test_getAllJobInfo_returns_all_metadata":0,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_sends_email_on_permanent_failure":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_uses_default_recipients_when_job_has_none":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_includes_dashboard_link":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_skips_when_no_recipients":0,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_sends_to_multiple_recipients":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_rate_limits_same_job":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_allows_different_jobs":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_rate_limits_per_store":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_clearRateLimit_allows_immediate_notification":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_email_subject_includes_job_display_name":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_email_body_includes_error_details":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_email_body_includes_attempt_count":0.001,"Tests\\Unit\\TaskEngine\\Services\\FailureNotifierTest::test_notifyFailure_respects_job_notification_setting":0,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_calculateDelay_returns_base_backoff_for_first_retry":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_calculateDelay_doubles_for_each_subsequent_retry":0,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_calculateDelay_caps_at_maximum":0,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_calculateDelay_adds_jitter_within_10_percent":0.008,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_scheduleRetry_updates_execution_for_retry":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_scheduleRetry_returns_false_when_max_retries_reached":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_scheduleRetry_uses_correct_queue_from_job_definition":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_scheduleRetry_calculates_correct_delayed_time":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_canRetry_returns_true_when_attempts_remaining":0,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_canRetry_returns_false_when_at_max_retries":0,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_canRetry_returns_false_for_non_failed_execution":0.001,"Tests\\Unit\\TaskEngine\\Services\\RetrySchedulerTest::test_canRetry_returns_false_when_retries_disabled":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRoles_returns_roles_array_with_custom_flag":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRoles_returns_custom_roles_when_configured":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRoles_handles_service_exception":0.001,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRoles_sets_json_content_type":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRolesMap_returns_roles_as_map":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::getRolesMap_handles_service_exception":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::updateRoles_returns_403_without_permission":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::seedRoles_returns_403_without_permission":0,"Tests\\Unit\\TeamMember\\Controllers\\RoleConfigControllerTest::deleteRole_returns_403_without_permission":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_returns_paginated_list_with_correct_structure":0.002,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_handles_service_exception":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_returns_dto_array_format":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_filters_by_status":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_filters_by_hasLogin":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_filters_by_hasPin":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_filters_by_source":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_applies_search_parameter":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_applies_pagination_parameters":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMember_returns_single_member_dto":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMember_returns_404_when_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMember_handles_service_exception":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMember_returns_complete_dto_structure":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_creates_new_member_for_homegrown":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_fails_for_external_source_store":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_validates_required_fields":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::updateTeamMember_updates_member":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::updateTeamMember_returns_404_when_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::updateTeamMember_respects_editable_fields_for_external_source":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::deactivateTeamMember_soft_deletes_member":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::deactivateTeamMember_returns_404_when_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::reactivateTeamMember_restores_active_status":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::reactivateTeamMember_returns_404_when_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_sets_valid_4_digit_pin":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_sets_valid_6_digit_pin":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_removes_pin_when_empty":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_rejects_invalid_pin_format":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_rejects_non_numeric_pin":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::toggleLogin_enables_login_access":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::toggleLogin_disables_login_access":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::toggleLogin_returns_404_when_member_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::sendInvitation_sends_invitation_email":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::sendInvitation_returns_400_when_no_email":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::sendInvitation_returns_404_when_member_not_found":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::syncFromProvider_triggers_sync":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::syncFromProvider_returns_error_for_homegrown_store":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getActivityLog_returns_stub_response":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getActivityLog_returns_404_for_invalid_member":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getActivityLog_handles_service_exception":0.001,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_returns_403_without_uri_employees_permission":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_returns_403_without_store_group_access":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_requires_uri_employees_permission":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::updateTeamMember_requires_store_group_access":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::createTeamMember_fails_without_csrf_token":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::updateTeamMember_fails_with_invalid_csrf_token":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::deactivateTeamMember_requires_csrf_token":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::setPin_requires_csrf_token":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::getTeamMembers_does_not_require_csrf":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::validation_error_returns_correct_format":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::not_found_error_returns_correct_format":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::forbidden_error_returns_correct_format":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::username_conflict_returns_409_with_suggestions":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::success_response_includes_data_and_message":0,"Tests\\Unit\\TeamMember\\Controllers\\TeamMemberControllerTest::mutation_success_includes_message":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromArray_creates_dto_with_all_properties":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromArray_handles_null_values":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromArray_computes_hasClockPin_correctly":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromArray_computes_hasPendingInvitation_correctly":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromUnifiedUser_hydrates_from_domain_models":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_fromUnifiedUser_handles_external_source":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_toArray_serializes_values_correctly":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_active_for_active_members":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_inactive_for_disabled_members":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_inactive_for_deactivated_assignment":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_on_leave_when_on_leave":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_active_when_leave_not_started":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_active_when_leave_ended":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_status_is_on_leave_for_indefinite_leave":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_isEditable_is_true_for_homegrown":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_isEditable_is_false_for_wheniwork":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_isEditable_is_false_for_homebase":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_editableFields_includes_all_for_homegrown":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_editableFields_includes_only_local_for_external":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_editableFields_includes_photo_when_avatarOverride":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_editableFields_excludes_photo_without_avatarOverride":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_displayName_uses_displayName_property":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_displayName_falls_back_to_first_last_name":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_displayName_handles_null_firstName":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_displayName_handles_null_lastName":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_roleName_derived_from_role_id":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_roleColor_derived_from_role_id":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_roleName_defaults_for_unknown_role":0,"Tests\\Unit\\TeamMember\\DTOs\\TeamMemberDTOTest::test_roleColor_defaults_for_unknown_role":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_enableLogin_sets_canLogin_true":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_enableLogin_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_disableLogin_sets_canLogin_false":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_disableLogin_returns_false_when_user_not_found":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_sets_username_and_password":0.036,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_validates_username_format":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_rejects_duplicate_username":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_validates_password_strength":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_sendInvitation_creates_activation_token":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_sendInvitation_requires_email":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_sendInvitation_returns_null_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_resendInvitation_generates_new_token":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_revokeInvitation_clears_token":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_generatePasswordResetToken_creates_token":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_generatePasswordResetToken_requires_login_enabled":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_resetPassword_updates_password":0.033,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_resetPassword_validates_password":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_getLoginStatus_returns_full_status":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_getLoginStatus_returns_null_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_disableMfa_clears_mfa_settings":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_disableMfa_returns_false_when_mfa_not_enabled":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_changeUsername_updates_username":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_changeUsername_validates_format":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_changeUsername_rejects_duplicate":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_changeUsername_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_validates_username_characters":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_validates_username_max_length":0.001,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_setCredentials_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_resetPassword_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_generatePasswordResetToken_returns_null_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_disableMfa_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_revokeInvitation_returns_false_when_user_not_found":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_getLoginStatus_detects_expired_invitation":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_getLoginStatus_detects_valid_invitation":0,"Tests\\Unit\\TeamMember\\Services\\LoginAccessServiceTest::test_sendInvitation_allows_empty_email":0.001,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoles_returns_defaults_when_no_custom_roles":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoles_returns_expected_structure":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRole_returns_single_role":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRole_returns_null_for_non_existent":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoleName_returns_role_name":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoleName_returns_unknown_for_non_existent":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoleColor_returns_role_color":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getRoleColor_returns_default_for_non_existent":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getDefaultRoles_returns_static_definitions":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_getDefaultsAsMap_returns_simplified_map":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_hasCustomRoles_returns_boolean":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_hasCustomRoles_returns_false_when_no_custom":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_seedDefaultRoles_creates_all_defaults":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_seedDefaultRoles_returns_count":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_saveRole_creates_new_role":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_saveRole_updates_existing_role":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_saveRole_validates_color_format":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_saveRole_accepts_valid_hex_colors":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_deactivateRole_soft_deletes":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_toArray_formats_for_api":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_toMap_formats_for_javascript":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_clearCache_exists":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_clearAllCache_exists":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_handles_empty_store_with_defaults":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_saveRole_executes":0,"Tests\\Unit\\TeamMember\\Services\\RoleConfigServiceTest::test_deactivateRole_executes":0,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncMatchesByExternalIdFirst":0.151,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncFallsBackToEmailMatch":0.036,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncMatchesByNameInSameStore":0.033,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncRespectsAvatarOverride":0.264,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncPreservesClockPin":0.059,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testNewSyncedUsersHaveCorrectDefaults":0.043,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testRemovedEmployeesAreDeactivated":0.033,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncCreatesAuditLog":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncResultContainsAccurateCounts":0,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testApiFailurePreservesExistingData":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncWithEmptyResponse":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testHomeGrownStoresCannotSync":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testReactivationOfPreviouslyDeactivatedEmployee":0.032,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesInvalidApiResponse":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testHomebaseSourceThrowsException":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testUnknownSourceThrowsException":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncSkipsDuplicateEmails":0.035,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncReactivatesInactiveAssignments":0,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncPreservesPhotoWithAvatarOverride":0,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesMalformedApiResponseMissingUsers":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesEmployeeWithNoEmail":0.031,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesEmployeeWithInvalidPosition":0.033,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncTracksMergedCountCorrectly":0.033,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesNullUsersArray":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testUsersWithLoginAccessAreNotDeactivated":0.003,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncHandlesMultipleDeactivations":0.003,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testManualAssignmentIsNotDeactivatedBySync":0.003,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testSyncCreatedAssignmentIsDeactivatedWhenRemovedFromWiw":0.003,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testOwnerRoleIsNeverDeactivatedBySync":0.002,"Tests\\Unit\\TeamMember\\Services\\SyncServiceTest::testManagerRoleIsNeverDeactivatedBySync":0.002,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_returns_paginated_list":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_respects_pagination_params":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_returns_dtos":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_status_active":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_status_inactive":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_hasLogin":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_hasPin":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_source":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_searches_by_name":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_searches_by_email":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMember_returns_single_member":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMember_returns_null_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMember_validates_store_access":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_createTeamMember_creates_user_and_assignment":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_createTeamMember_throws_for_external_source":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_updates_allowed_fields":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_respects_editable_fields":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_returns_null_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_deactivateTeamMember_soft_deletes":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_deactivateTeamMember_returns_false_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_reactivateTeamMember_restores_active":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_setClockPin_validates_format":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_setClockPin_rejects_invalid_format":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_setClockPin_rejects_non_numeric":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_setClockPin_accepts_6_digit":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_removeClockPin_clears_pin":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_removeClockPin_returns_false_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_external_source_fields_are_protected":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_returns_existing_when_no_updates":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_clears_date_fields_with_empty_string":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_updates_assignment_fields":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_updateTeamMember_filters_empty_assignment_values":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_syncFromProvider_requires_store_object":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_syncFromProvider_rejects_homegrown":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_syncFromProvider_delegates_to_sync_service":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_role":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_filters_by_on_leave_status":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_handles_page_beyond_total":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_enforces_max_perPage":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_enforces_min_page":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_getTeamMembers_sorts_by_different_columns":0.001,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_setClockPin_returns_false_when_not_found":0,"Tests\\Unit\\TeamMember\\Services\\TeamMemberServiceTest::test_reactivateTeamMember_returns_false_when_not_found":0,"Tests\\Unit\\UserDatabaseTest::testCreateUser":0.248,"Tests\\Unit\\UserDatabaseTest::testUpdateUser":0.241,"Tests\\Unit\\UserDatabaseTest::testDeleteUser":0.24,"Tests\\Unit\\UserDatabaseTest::testUserGroupAssignment":0.237,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_getDailyAssignments_returns_groups_with_assignments":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_getDailyAssignments_tasks_show_hasIndividualOverride":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_creates_person_override":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_creates_position_override":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_clear_removes_override":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_rejects_past_dates":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_publishes_ably_event":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_setDailyOverride_invalidates_both_caches":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_permission_requires_workbook_manage_tasks":0,"Tests\\Unit\\Workbook\\Controllers\\DailyAssignmentApiControllerTest::test_staff_chat_notification_on_person_override":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_getGroupAssignment_returns_positions_array":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_setGroupAssignment_accepts_positionIds_creates_default":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_setGroupAssignment_empty_positionIds_clears_assignment":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_setGroupAssignment_rejects_inactive_position":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_setTaskAssignment_accepts_positionIds":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_setTaskAssignment_inherit_true_clears_override":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_permission_requires_workbook_manage_tasks":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_store_gate_rejects_non_buyerkiosk":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_ably_event_published_on_assignment_change":0,"Tests\\Unit\\Workbook\\Controllers\\TaskAdminAssignmentControllerTest::test_cache_invalidated_on_assignment_change":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_completion_position_audit_fields_populated":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_completion_returns_422_when_oop_detected_no_reason":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_completion_shiftId_snapshotted_from_day_override":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_completion_assignedTo_snapshotted":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_eligible_employees_returns_categorized_lists":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_eligible_employees_excludes_disabled_users":0,"Tests\\Unit\\Workbook\\Controllers\\TaskCompletionPositionTest::test_ably_taskCompleted_includes_outOfPositionLevel":0.001,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_calls_notAuthorized_when_user_lacks_store_access":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_calls_notAuthorized_when_user_has_different_store_group":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_calls_notAuthorized_when_user_lacks_store_access":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_calls_notAuthorized_when_user_has_different_store_group":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_calls_notFound_when_store_is_null":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_calls_notFound_when_store_is_null":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::controller_can_be_instantiated":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::controller_extends_base_controller":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_handles_empty_typeNum":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_handles_empty_typeNum":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_handles_malformed_typeNum":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_handles_malformed_typeNum":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_handles_user_without_access_gracefully":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_handles_user_without_access_gracefully":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::multiple_pageWorkbook_calls_check_authorization_each_time":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_returns_early_after_notAuthorized":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_returns_early_after_notAuthorized":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_checks_correct_typeNum_with_user":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_checks_correct_typeNum_with_user":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkbook_verifies_ou_store_prefix":0,"Tests\\Unit\\Workbook\\Controllers\\WorkbookPageControllerTest::pageWorkspace_verifies_pc_store_prefix":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_array_of_kpi_configurations":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_configurations_ordered_by_sortOrder":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_includes_all_expected_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getAll_returns_empty_array_when_table_is_empty":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_only_visible_kpis":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_excludes_hidden_kpis":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_configurations_ordered_by_sortOrder":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getVisible_returns_empty_array_when_all_hidden":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_kpi_configuration_for_valid_key":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_null_for_nonexistent_key":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_all_configuration_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_getByKey_returns_hidden_kpi":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_successfully_updates_multiple_kpis":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_uses_defaults_for_missing_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_skips_entries_without_kpiKey":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_returns_true_on_empty_array":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_update_is_transactional":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_updates_single_field":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_updates_multiple_allowed_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_ignores_disallowed_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_empty_updates":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_only_disallowed_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_returns_false_for_nonexistent_kpi":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_updateSingle_validates_allowed_fields":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_restores_default_kpis":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_clears_all_existing_data":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_creates_kpis_in_correct_order":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_resetDefaults_sets_correct_visibility":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_hides_visible_kpi":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_shows_hidden_kpi":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_double_toggle_returns_to_original":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_returns_false_for_nonexistent_kpi":0,"Tests\\Unit\\Workbook\\KPIConfigTest::test_toggleVisibility_affects_getVisible_results":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_fromRow_hydrates_person_override":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_fromRow_hydrates_position_override":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_fromRow_casts_string_values_to_int":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_toArray_includes_all_fields":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_toArray_handles_null_optional_fields":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_jsonSerialize_returns_api_fields_only":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_isFromShiftDialog_returns_true_when_shiftId_set":0,"Tests\\Unit\\Workbook\\Models\\TaskDayOverrideTest::test_isFromShiftDialog_returns_false_when_shiftId_null":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromRow_hydrates_all_fields":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromRow_handles_task_target_type":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromRow_defaults_sortOrder_to_zero":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromRow_casts_string_values_to_int":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromArray_creates_assignment":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromArray_defaults_targetType_to_task":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromArray_throws_when_createdByUserId_missing_for_new":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_fromArray_allows_missing_createdByUserId_when_id_present":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_toArray_includes_all_fields":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_toArray_roundtrip_with_fromArray":0,"Tests\\Unit\\Workbook\\Models\\TaskPositionAssignmentTest::test_jsonSerialize_returns_api_fields_only":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_creates_comment":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_throws_exception_when_missing_required_fields":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_returns_comments_with_employee_names":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_orders_by_created_at":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_returns_empty_array_when_no_comments":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_delete_removes_comment":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_delete_requires_id":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_fromArray_creates_comment_object":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_toArray_returns_correct_structure":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_getForNote_filters_by_noteId":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_fromArray_handles_missing_optional_fields":0,"Tests\\Unit\\Workbook\\NoteCommentTest::test_save_sets_id_after_insert":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_returns_visible_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_future_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_expired_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_excludes_manager_only_when_flag_false":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_orders_pinned_first":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_returns_note_with_author":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_includes_reaction_and_comment_counts":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_includes_user_reaction_status":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getById_returns_null_when_not_found":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_create_returns_note_id":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_create_returns_null_on_failure":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTodayNotes_includes_author_info":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_returns_paginated_results":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_hasMore_flag_is_true_when_more_results_exist":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_hasMore_flag_is_false_when_no_more_results":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_offset_skips_results":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_excludes_manager_only_when_flag_false":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_includes_manager_only_when_flag_true":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_includes_user_reaction_status":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_orders_pinned_first":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getNotes_excludes_deleted_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_returns_count_of_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_excludes_manager_only_when_flag_false":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getTotalCount_includes_manager_only_when_flag_true":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_converts_row_to_note_object":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_handles_null_optional_fields":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_casts_boolean_fields_correctly":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_hydrate_casts_integer_fields_correctly":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_counts_by_type":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_zero_for_no_reactions":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCounts_returns_defaults_for_nonexistent_note":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_returns_counts_for_multiple_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_returns_empty_for_empty_array":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionCountsBatch_initializes_defaults_for_notes_without_reactions":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_returns_employee_names_by_type":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_returns_empty_arrays_for_no_reactions":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionsByEmployees_includes_employee_id":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_returns_details_for_multiple_notes":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_returns_empty_for_empty_array":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_initializes_defaults_for_notes_without_reactions":0,"Tests\\Unit\\Workbook\\NoteManagerTest::test_getReactionDetailsBatch_handles_multiple_reactions_per_type":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_add_creates_reaction":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_add_ignores_duplicate":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_remove_deletes_reaction":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_remove_returns_true_when_reaction_does_not_exist":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getCount_returns_correct_count":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getCount_returns_zero_when_no_reactions":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_returns_true_when_reacted":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_returns_false_when_not_reacted":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_hasReacted_is_user_specific":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_returns_employees_with_reaction_info":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_returns_empty_array_when_no_reactions":0,"Tests\\Unit\\Workbook\\NoteReactionTest::test_getReactors_orders_by_created_at_desc":0,"Tests\\Unit\\Workbook\\NoteTest::test_save_creates_new_note":0,"Tests\\Unit\\Workbook\\NoteTest::test_save_updates_existing_note":0,"Tests\\Unit\\Workbook\\NoteTest::test_delete_removes_note_and_related_data":0,"Tests\\Unit\\Workbook\\NoteTest::test_toArray_returns_all_fields":0,"Tests\\Unit\\Workbook\\NoteTest::test_fromArray_hydrates_note":0,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_authorEmployeeId":0,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_content":0,"Tests\\Unit\\Workbook\\NoteTest::test_save_requires_startDate":0,"Tests\\Unit\\Workbook\\NoteTest::test_delete_requires_id":0,"Tests\\Unit\\Workbook\\NoteTest::test_fromArray_sets_defaults_for_optional_fields":0,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_formats_currency":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_formats_percentage":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_formats_hours":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_formats_integer":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_returns_good_when_at_goal":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_returns_good_when_above_goal":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_returns_warning_when_90_percent":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_returns_danger_when_below_90":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_returns_neutral_when_no_goal":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_calculateDerivedKPIs_calculates_trade_percent":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_calculateDerivedKPIs_preserves_existing_kpis":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_handles_zero_values":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_formatKPIValue_handles_large_numbers":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getKPIStatus_edge_cases":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getAll_returns_all_kpis":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getVisible_returns_only_visible_kpis":0,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getByKey_returns_kpi_for_valid_key":0,"Tests\\Unit\\Workbook\\Phase5bTest::test_kpiconfig_getByKey_returns_null_for_invalid_key":0,"Tests\\Unit\\Workbook\\Phase5bTest::test_resolveProvider_returns_wheniwork_when_enabled":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_resolveProvider_returns_null_when_no_provider":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_getTodaySchedule_returns_not_enabled_when_no_provider":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_enrichWithClockStatus_adds_isClockedIn_flag":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_enrichWithClockStatus_handles_empty_shifts":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleManager_getProvider_returns_null_when_no_providers":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleManager_isEnabled_returns_false_when_no_provider":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleManager_isEnabled_returns_true_when_provider_enabled":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleManager_getTodaySchedule_includes_metadata":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleManager_refreshSchedule_fails_when_no_provider":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_isEnabled_returns_true_when_wiw_configured":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_isEnabled_returns_false_when_wiw_not_configured":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_getProviderName_returns_wheniwork":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_isEnabled_requires_token":0.002,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_getScheduleForDate_returns_empty_when_disabled":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_getEmployeeShift_returns_null_when_disabled":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_wheniwork_syncScheduleToCache_returns_false_when_disabled":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_homebase_isEnabled_returns_false":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_homebase_getProviderName_returns_homebase":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_homebase_getScheduleForDate_returns_empty_array":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_homebase_getEmployeeShift_returns_null":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_homebase_syncScheduleToCache_returns_false":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleProvider_getCacheKey_formats_correctly":0.001,"Tests\\Unit\\Workbook\\Phase5bTest::test_scheduleProvider_getCacheKey_handles_different_dates":0.001,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_null_when_no_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_person_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_position_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByTargetAndDate_returns_correct_date":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_creates_new_person_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_creates_new_position_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_updates_existing_override_on_same_target_and_date":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_with_shiftId":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_sets_id_on_update_path":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_upsert_switches_assignment_type_nulls_other_column":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByDate_returns_all_overrides_for_date":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByDate_returns_empty_when_no_overrides":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByShiftId_returns_overrides_linked_to_shift":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_findByShiftId_returns_empty_for_unknown_shift":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_removes_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_does_not_affect_other_dates":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_does_not_affect_other_targets":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByTargetAndDate_noop_when_no_override":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByShiftId_removes_all_overrides_for_shift":0,"Tests\\Unit\\Workbook\\Repositories\\TaskDayOverrideRepositoryTest::test_clearByShiftId_does_not_affect_other_shifts":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_empty_when_no_assignments":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_task_assignments_sorted_by_sortOrder":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_returns_group_assignments":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTarget_does_not_return_other_targets":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_grouped_by_targetId":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_empty_for_no_ids":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_findByTargetBatch_returns_empty_for_unassigned_targets":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_creates_new_assignments":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_replaces_existing_assignments_atomically":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_with_empty_array_clears_all_assignments":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_setPositions_does_not_affect_other_targets":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_removes_all_assignments_for_target":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_does_not_affect_other_targets":0,"Tests\\Unit\\Workbook\\Repositories\\TaskPositionAssignmentRepositoryTest::test_clearByTarget_noop_when_no_assignments":0,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsBuyerkioskWhenExplicitlySet":0.003,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsWheniworkWhenExplicitlySet":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsHomebaseWhenExplicitlySet":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderFallsBackToWheniworkWhenNoExplicitSetting":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderFallsBackToHomebaseWhenWheniworkDisabled":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testResolveProviderReturnsNullWhenNoProviderEnabled":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetTodayScheduleReturnsScheduleForCurrentDate":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetTodayScheduleReturnsEmptyWhenNoProvider":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsSuccessfulSchedule":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsCorrectResponseStructure":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateReturnsDisabledWhenNoProvider":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetScheduleForDateHandlesExceptionGracefully":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsSuccessMessage":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsErrorWhenNoProvider":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleReturnsErrorWhenSyncFails":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testrefreshScheduleHandlesExceptionGracefully":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusAddsIsClockedInFlag":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusHandlesEmptyShifts":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testenrichWithClockStatusHandlesErrorGracefully":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetClockedInEmployeeIdsQueriesBuyerkioskProvider":0.004,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetClockedInEmployeeIdsHandlesWheniworkProvider":0.001,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetProviderReturnsProviderWhenSet":0.003,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testgetProviderReturnsNullWhenNoProvider":0.003,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testisEnabledReturnsTrueWhenProviderSet":0.003,"Tests\\Unit\\Workbook\\ScheduleManagerTest::testisEnabledReturnsFalseWhenNoProvider":0.003,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testGetAvailableTasksReturnsMatchingOtherAndAlreadyAssigned":0.002,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testGetAvailableTasksShowsAlreadyAssignedTasks":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testGetAvailableTasksExcludesCompletedTasks":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testGetAvailableTasksReturnsEmptyWhenNoTasks":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testPositionMatchingComparesEmployeeVsTaskPositions":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceShiftTest::testGetAvailableTasksGroupOverrideMarksAllGroupTasksAssigned":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_cascade_level1_taskDayOverride_wins_over_all":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_cascade_level2_taskDefault_wins_over_groupOverrides":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_cascade_level3_groupDayOverride_wins_over_groupDefault":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_cascade_level4_groupDefault_is_last_fallback":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_unassigned_no_assignments_at_any_level_returns_null":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_isInherited_taskLevel_false_groupLevel_true":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDefaultPositionAssignment_position_only_per_ADR8":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_validates_exactly_one_of_positionId_or_userId":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_rejects_position_without_positionId":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_rejects_person_without_userId":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_accepts_only_positionId":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_accepts_only_userId":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_getGroupAssignments_returns_groups_with_effective_assignments":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_getAvailableTasksForShift_returns_position_matching_first":0.001,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_setDayOverride_rejects_inactive_position":0,"Tests\\Unit\\Workbook\\Services\\DailyTaskAssignmentServiceTest::test_resolveEffectiveAssignment_handles_zero_groupId":0.001,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_clean_completion_right_person_right_position":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_ADR7_wrong_person_but_correct_position_is_clean":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_level2_wrong_person_AND_wrong_position":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_level1_person_only_assignment_wrong_person":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_level2_position_only_assignment_completer_lacks_position":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_no_assignment_returns_null_level_no_flags":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_multi_position_records_first_matching_by_sortOrder":0,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_separates_qualified_from_others":0.001,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_excludes_disabled_users":0.001,"Tests\\Unit\\Workbook\\Services\\PositionCompletionValidationServiceTest::test_getEligibleEmployees_sorted_by_firstName":0.001,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_new_assignment":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_assignment_with_null_employee":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_creates_assignment_with_minimal_fields":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_save_throws_exception_when_taskId_missing":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_removes_assignment":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_returns_false_when_id_missing":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_delete_returns_true_for_nonexistent_id":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_returns_assignments":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_returns_empty_array_when_no_assignments":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_orders_by_dueDate_and_dueTime":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForTask_includes_null_employee_assignments":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_assignments_without_date_filter":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_assignments_with_date_filter":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_null_date_assignments_when_date_filter_applied":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_assignments_to_all_employees":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_returns_empty_array_when_no_assignments":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_getForEmployee_includes_task_info":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_creates_assignment_object_with_all_fields":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_handles_null_values":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_handles_missing_optional_fields":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_fromArray_casts_types_correctly":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_returns_correct_structure":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_includes_null_values":0,"Tests\\Unit\\Workbook\\TaskAssignmentTest::test_toArray_and_fromArray_roundtrip":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_save_creates_comment":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_save_throws_exception_when_missing_required_fields":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_returns_empty_array_when_no_comments":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_returns_comments_with_employee_names":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTaskAndDate_filters_by_date":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTask_returns_comments_across_all_dates":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_getForTask_respects_limit":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_delete_removes_comment":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_fromArray_creates_comment_object":0,"Tests\\Unit\\Workbook\\TaskCommentTest::test_toArray_returns_correct_structure":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_persists_all_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_persists_out_of_position_level2_with_reason":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_upsert_updates_audit_fields_on_duplicate":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_save_allows_null_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_getForTaskAndDate_hydrates_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_getForTaskAndDate_null_audit_fields_when_not_set":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_fromArray_includes_all_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_toArray_includes_all_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_fromArray_toArray_roundtrip_with_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionPositionAuditTest::test_backward_compatibility_save_without_audit_fields":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_save_creates_new_completion":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_save_updates_existing_completion":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_completedAt_set_when_status_is_2":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_completedAt_null_when_status_not_2":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_getForTaskAndDate_returns_null_when_not_exists":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_getForTaskAndDate_returns_completion_when_exists":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_fromArray_creates_completion_object":0,"Tests\\Unit\\Workbook\\TaskCompletionTest::test_toArray_returns_correct_structure":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_effectiveAssignment_structure_matches_spec":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_person_assignment_includes_user_data":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_non_buyerkiosk_stores_get_no_assignment_data":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_carryover_stale_person_override_flagged":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_task_with_stale_assignment_structure":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_assignment_enrichment_graceful_on_error":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_source_values_match_cascade_levels":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_multiple_positions_in_assignment":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_json_serialization":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_empty_positions_for_unassigned_tasks":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_non_stale_carryover_has_false_flags":0,"Tests\\Unit\\Workbook\\TaskListManagerEnrichmentTest::test_recurring_task_not_flagged_as_stale":0,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_zero_for_empty_list":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_100_when_all_complete":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_returns_50_for_half_complete":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_rounds_correctly":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_ignores_null_status":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_calculateCompletionPercentage_only_counts_status_2_as_complete":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_returns_id_on_success":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_throws_exception_when_groupId_missing":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_uses_defaults_for_optional_fields":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_invalidates_cache":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_entries_for_day":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_empty_array_when_no_schedule":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_grouped_by_listId":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_empty_array_when_no_schedules":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_returns_true_on_success":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_with_inactive_flag":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_invalidates_cache":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_processes_multiple_days":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_handles_complex_config":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateScheduleBatch_uses_default_time_when_not_specified":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_returns_true_on_success":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_invalidates_cache":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_deletes_expected_keys":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_handles_wildcard_pattern":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_invalidateCache_handles_empty_wildcard_results":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getScheduleForDay_returns_empty_on_pdo_exception":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getFullSchedule_returns_empty_on_pdo_exception":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_updateSchedule_returns_false_on_pdo_exception":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_deleteSchedule_returns_false_on_pdo_exception":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_createTaskList_throws_on_pdo_exception":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_returns_lists_scheduled_for_today":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_includes_task_counts":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTodayLists_returns_empty_array_on_error":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_returns_current_list":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_includes_carryover_from_previous_lists":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getActiveListWithCarryover_returns_null_when_no_lists_scheduled_today":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTasksForList_filters_by_time_when_requested":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getTasksForList_returns_all_tasks_when_filter_disabled":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_getAllTasksForList_calls_getTasksForList_with_false":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_updates_rack_name_from_current_db":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_skips_non_floor_plan_tasks":0.001,"Tests\\Unit\\Workbook\\TaskListManagerTest::test_enrichFloorPlanTasks_handles_remove_task_with_backstock":0.001,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getTodayCanvas_returns_null_when_no_canvas_exists":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getTodayCanvas_returns_canvas_data_when_exists":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_creates_new_record":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_updates_existing_record":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_resets_to_empty":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_returns_non_expired_items":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_excludes_expired_items":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_creates_sticky_note":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_with_custom_properties":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_changes_specified_fields":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_does_not_change_other_fields":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_removes_item":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_removes_expired_items":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_returns_todays_history":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_creates_history_entry":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withInvalidJson_returnsFalse":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withNullEmployee_savesWithoutLogging":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_withThumbnail_savesThumbnailData":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_saveCanvas_logsActionWhenEmployeeProvided":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_logsActionBeforeClearing":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_clearCanvas_withNullEmployee_clearsWithoutLogging":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_returnsEmptyArrayOnError":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_includesCreatorInformation":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItems_orderedByZIndexAndCreatedAt":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_usesDefaultValuesForOptionalFields":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_returnsNullOnFailure":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_addItem_logsActionWhenEmployeeProvided":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItem_returnsNullForNonExistentItem":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getItem_includesCreatorInformation":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_ignoresNonWhitelistedFields":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_returnsFalseWhenNoValidFields":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_updatesUpdatedAtTimestamp":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_updateItem_returnsFalseForNonExistentItem":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_returnsFalseForNonExistentItem":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_logsActionBeforeDeleting":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_deleteItem_withNullEmployee_deletesWithoutLogging":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_returnsCountOfDeletedItems":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_cleanupExpired_doesNotDeleteNonExpiredItems":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_withNullData_logsSuccessfully":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_logAction_doesNotThrowOnLoggingFailure":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_defaultsToTodayWhenNoDateProvided":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_filtersToSpecificDate":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_includesEmployeeNames":0,"Tests\\Unit\\Workbook\\WhiteboardManagerTest::test_getHistory_orderedByCreatedAtDesc":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testCanInstantiate":0.001,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testHandlesMissingAblyKeyGracefully":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testTaskCompletedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testTaskUncompletedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testTaskProgressMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testTaskCommentMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testTaskAssignedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testNoteCreatedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testNoteUpdatedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testNoteDeletedMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testNoteReactionMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testNoteCommentMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardSaveMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardClearMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardStickyAddMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardStickyMoveMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardStickyEditMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testWhiteboardStickyDeleteMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testScheduleRefreshMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testKpiRefreshMethodExists":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testHandlesNullEmployeeId":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testHandlesEmptyDataArrays":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testHandlesEmptyAblyKey":0,"Tests\\Unit\\Workbook\\WorkbookAblyTest::testMultipleInstances":0}}