πŸ§ͺ Rapport Tests Pest Laravel β€” PREPROD

23/09/2026 07:16:06 · ❌ 20 test(s) en échec

1341
Total
1315
PassΓ©s
20
Γ‰chouΓ©s
6
IgnorΓ©s
1636.7s
DurΓ©e
StatutClasseTestDurΓ©eMessage
βœ… Tests.Api.Inpulse.InpulseTest Sync products 0.006s
βœ… Tests.Features.ActivityLog.ActivityLogTest Dirty only update keeps ownership separate from changes and author 10.842s
βœ… Tests.Features.ActivityLog.ActivityLogTest Nested impersonation keeps original author and target owner 9.863s
βœ… Tests.Features.ActivityLog.ActivityLogTest Direct impersonation displays the target instead of repeating the author 9.852s
βœ… Tests.Features.ActivityLog.ActivityLogTest Family impersonation is displayed as its parent client 10.817s
βœ… Tests.Features.ActivityLog.ActivityLogTest Legacy impersonation does not guess the target from ownership 9.124s
βœ… Tests.Features.ActivityLog.ActivityLogTest Unowned template does not inherit the impersonated restaurant 9.128s
βœ… Tests.Features.ActivityLog.ActivityLogTest Client settings and family templates resolve the client 9.192s
βœ… Tests.Features.ActivityLog.ActivityLogTest Direct owner edits and deletes keep the snapshot 9.674s
βœ… Tests.Features.ActivityLog.ActivityLogTest Filters match owner names ids and combine without matching the author 10.273s
βœ… Tests.Features.ActivityLog.ActivityLogTest Activity page displays most specific owner and applies unified search 9.772s
βœ… Tests.Features.ActivityLog.ActivityLogTest Activity page uses the current locale 9.534s
βœ… Tests.Features.ActivityLog.ActivityLogTest Legacy author does not override recorded ownership 10.773s
βœ… Tests.Features.ActivityLog.ActivityLogTest Models without ownership do not inherit the acting account 13.512s
βœ… Tests.Features.ActivityLog.ActivityLogTest Owner snapshot does not follow later restaurant transfers 14.544s
βœ… Tests.Features.ActivityLog.ActivityLogTest Legacy recorded ownership is still displayed and filterable 16.471s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline saint denis june 1 reproduces counter bug 13.977s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline pfc fruit legume june 1 reproduces counter bug 13.793s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline saint denis excursion time is counter times 600 15.708s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest nominal single measure every 10 min still works 15.092s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline logger issue day csv reproduces error-day behavior 14.045s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline logger issue day csv with connectivity checks 15.736s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline logger issue day mod nico 1 csv reproduces error-day behavior 18.880s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline logger issue day mod nico 2 csv reproduces error-day behavior 14.618s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest baseline quick june 2026 csv 35.348s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest replay OK_CASE quick nevers marzy csv 14.384s
βœ… Tests.Features.Loggers.FridgeLoggerBatchReplayTest replay TEMP_KO_CONN_OK_CASE_WITH_EXCLUSION quick villeneuve csv 16.264s
βœ… Tests.Features.Loggers.FridgeLoggersTest Temperatures 11.585s
βœ… Tests.Features.Loggers.FridgeLoggersTest Several measures 10.415s
βœ… Tests.Features.Loggers.FridgeLoggersTest Connection 10.873s
βœ… Tests.Features.Loggers.FridgeLoggersTest Epv cauderan 17.099s
βœ… Tests.Features.Loggers.FridgeLoggersTest Terrasse saint pol 11.344s
βœ… Tests.Features.Loggers.FridgeLoggersTest Global connection 13.528s
βœ… Tests.Features.Loggers.FridgeLoggersTest ClosedDates logger 10.802s
βœ… Tests.Features.Loggers.FridgeLoggersTest ClosedDates logger 10.904s
βœ… Tests.Features.Loggers.FridgeLoggersTest ClosedDates contacts 11.104s
βœ… Tests.Features.Loggers.FridgeLoggersTest ClosedDates connexion contacts 11.021s
βœ… Tests.Features.Loggers.FridgeLoggersTest ClosedDates connexion contacts 10.831s
βœ… Tests.Features.Loggers.FridgeLoggersTest Case cirl 17.275s
βœ… Tests.Features.Loggers.FridgeLoggersTest No data alerts 12.792s
βœ… Tests.Features.Loggers.FridgeLoggersTest NoDataAlerts AllLoggers 10.750s
βœ… Tests.Features.Loggers.FridgeLoggersTest NoDataAlerts ResumeBeforeSecondAlert 11.862s
βœ… Tests.Features.Loggers.FridgeLoggersTest NoDataAlerts MultipleLoggers 14.068s
βœ… Tests.Features.Loggers.FridgeLoggersTest NoDataAlert IgnoresInactiveLoggers 10.330s
βœ… Tests.Features.Loggers.LoggerClosedDatesScenariosTest back_to_normal after exclusion sends no email when issue was never alerted 10.902s
βœ… Tests.Features.Loggers.LoggerClosedDatesScenariosTest deferred issue resolved during exclusion is not promoted when exclusion ends 10.619s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest scenario stable produces one batch per measurement 10.760s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest scenario stable and unstable accept inLimits OK KO 10.580s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest scenario unstable produces one burst with backlog since last reception 9.443s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest scenario stable then unstable then noData then unstable then stable ends in stable_ok 9.888s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest stable_ok to stable_ko triggers temperature_issue 9.949s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest scenario stable then noData then unstable then stable 10.092s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest connection scenario shapes with data set "dataset "stable β†’ unstable β†’ noData β†’ unstable β†’ stable"" 10.715s
βœ… Tests.Features.Loggers.LoggerConnectionScenariosTest connection scenario shapes with data set "dataset "stable β†’ noData β†’ unstable β†’ stable"" 10.415s
βœ… Tests.Features.Loggers.LoggerPeriodicTemperatureTickTest periodic tick triggers dizzy temperature issue after ko readings then silence 10.120s
βœ… Tests.Features.Loggers.LoggerPeriodicTemperatureTickTest periodic tick does not run when last reading temperature is in limits 17.009s
βœ… Tests.Features.Loggers.LoggerPeriodicTemperatureTickTest periodic tick sends temperature reminder when excursion remains open without new data 11.215s
βœ… Tests.Features.Loggers.LoggerPeriodicTemperatureTickTest periodic tick does nothing when window has no readings 17.478s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest does nothing when simulation is disabled 10.173s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest injects a reading for each eligible logger when enabled 10.671s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest respects the restaurant allowlist 12.563s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest dry-run does not persist any reading 9.383s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest an excursion produces an out-of-limits reading 8.709s
βœ… Tests.Features.Loggers.LoggerSimulationTickTest an inactive logger is not simulated 8.843s
βœ… Tests.Features.Loggers.LoggerTemperatureReminderTest reminder event type mirrors initial temperature issue 0.042s
βœ… Tests.Features.Loggers.LoggerTemperatureReminderTest sendsTemperatureReminder identifies reminder events 0.043s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest dizzy temperature issue variant distinguishes co-occurring dizzy_started 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest dizzy ended alert variant covers temperature outcomes 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest temperature and resolution alerts are suppressed when dizzy ended covers them 0.039s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ok β†’ stable_ko"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ok β†’ unstable_ok"" 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ok β†’ unstable_ko"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ko β†’ stable_ok"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ko β†’ unstable_ok"" 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "stable_ko β†’ unstable_ko"" 0.036s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ok β†’ stable_ok"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ok β†’ stable_ko"" 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ok β†’ unstable_ko"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ko β†’ stable_ok"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ko β†’ stable_ko"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "unstable_ko β†’ unstable_ok"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest transition planner returns expected events with data set "dataset "first batch (no previous state)"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest window state is derived from analysis flags with data set "dataset "stable ok"" 0.039s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest window state is derived from analysis flags with data set "dataset "stable ko"" 0.038s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest window state is derived from analysis flags with data set "dataset "unstable ok"" 0.037s
βœ… Tests.Features.Loggers.LoggerWindowTransitionsTest window state is derived from analysis flags with data set "dataset "unstable ko"" 0.037s
⏭️ Tests.Perf.ActivityLogsPerfTest Benchmark 0.000s
⏭️ Tests.Perf.ActivityLogsPerfTest Functional correctness 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest IsAuditLinked is true for a plan born from an audit 0.002s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest IsAuditLinked is false for a standalone plan 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest IsAuditLinked is false for another recordable type 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest IsAuditLinked is false when the id is missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients on an empty collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients uses the name attribute of a local contact 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients concatenates firstname and lastname of a national contact 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients falls back to firstname when name is empty 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients deduplicates by email regardless of case 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients preserves the original case of the email 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest No pivot row means subscribed 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest Pivot with pa alerts on means subscribed 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest Pivot with pa alerts off means opted out 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest IsSubscribedToAuditPlans handles the query builder shape 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanAlertRecipientsTest ToRecipients skips contacts without email 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Parse period date reads french format and starts the day 0.009s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Parse period date ends the day when asked 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Parse period date falls back to today when missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Parse period date falls back to today when unreadable 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Resolve per page uses default when missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Resolve per page keeps requested value 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Resolve per page caps excessive value 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Resolve per page ignores zero and negative 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Collect audit record ids keeps only audit records 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Collect audit record ids deduplicates and drops null ids 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Collect audit record ids returns empty array when no audit 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Split files by kind treats both image and photo as photos 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Split files by kind keeps documents apart 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Split files by kind excludes commentary files 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform audit exposes both identifiers and name 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform audit returns null for a plan created manually 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform audit returns null when audit record is missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform audit tolerates an audit record without its audit 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform employee exposes identity 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Transform employee returns null when unassigned 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Get attached file delegates to repository 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanApiServiceTest Get attached file returns null when repository refuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Restaurant matches its own action plan 0.007s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Restaurant does not match another restaurants action plan 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Null current entity is denied 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Client with access to owning restaurant is allowed 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Client without access to owning restaurant is denied 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryControllerTest Non restaurant userable type is denied even if id coincides 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow does not crash when planFiles is eloquent collection 0.072s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow returns dash when no files or comments 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow merges plan comments into commentaries 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow counts photos and documents 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow counts old files when no period given 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow excludes file outside window when period given 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow counts file inside window when period given 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest ResolveSource returns action plan label when recordable type null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest ResolveSource returns action plan label for action plan class 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest ResolveSource returns audit label for audit record class 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest ResolveSource falls back to class basename for unknown type 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow uses changelog snapshot not final plan responsible 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow responsible varies between two changelogs of the same plan 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow returns dash when changelog has no assigned snapshot 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow uses plan responsible when no changelog 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow uses changelog status date and author when changelog given 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow falls back to dash when changelog has no status or employee 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryExportTest BuildRow uses plan status and creation date when no changelog 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest RecordableTypeForModule returns audit record class for audits 0.005s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest RecordableTypeForModule returns null for unknown module 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetBoardData calculates percent correctly 0.002s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetBoardData returns dash percent when no plans 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetBoardData returns 100 percent when all done 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDaysData formats kpi string with percent 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDaysData returns dash when total is zero 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDaysData uses zero finished when day absent from finished 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetTableViewData delegates to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetPopupItems delegates to repo 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest FindById delegates to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetAuditLinkedActionPlans chains repo calls 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetByAuditRecordId delegates to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest CountByAuditRecordId delegates to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDetailsData separates documents from images 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDetailsData returns status changelogs collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDetailsData excludes assignment events from the journal 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDetailsData returns empty data when no files or changelogs 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveOrphanTag returns supprimee when category is deleted 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveOrphanTag returns national when nat category and loc only settings 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveOrphanTag returns local when loc category and nat only settings 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveOrphanTag returns null when category matches active scope 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest GetDetailsData builds photo gallery urls in order 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest FormatHomeKpi returns dash when total is zero 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest FormatHomeKpi formats percentage and fraction 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest FormatHomeKpi rounds percentage 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest PopupTypeIcon returns expected icon per type 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues unsets all sections when everything empty 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues populates categories when present 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues populates responsable names when present 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues unsets statuses when setting is null even with statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues populates statuses when setting and statuses present 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ApplyDynamicFilterValues unsets statuses when setting present but no statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveFilterCategories returns loc categories when loc only 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveFilterCategories returns nat categories when nat only 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveFilterCategories merges loc and nat sorted by position 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveFilterCategories appends orphan categories with tag 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveLocFilterCategories delegates to repo with userable id and class 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryLocalServiceTest ResolveNatFilterCategories delegates to repo with client family id 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetHomeCardData returns required keys 0.009s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetDaysData returns empty array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetBoardData returns stub structure 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetTableViewData returns empty collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetPopupItems returns empty paginator 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest FindById returns null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetAuditLinkedActionPlans returns empty collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest GetByAuditRecordId returns empty collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest CountByAuditRecordId returns zero 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest BuildFilters returns empty array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest FindAttachedFile returns null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanHistoryMultiServiceTest PopupTypeIcon returns expected icon per type 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting rejects invalid field 0.006s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting propagates repo failure 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData creates settings when missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData does not recreate settings when present 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData returns early when settings setup fails 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData creates statuses when missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData does not duplicate statuses when present 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories for client family returns family own categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories without family returns only restaurant categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories with family and loc param returns only restaurant categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories with family and nat param returns only family categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories with family passes active only to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories does not filter locally disabled family categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetCategories with family and loc nat param returns both 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateCategory returns success with model when repo succeeds 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateCategory returns failure when repo returns null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest ToggleCategory returns success with model when repo succeeds 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest ToggleCategory returns failure when repo returns null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest BulkDelete returns success when repo succeeds 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest BulkDelete returns failure when repo fails 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest GetIndexPageData includes settings in return 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when no setting 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when no active statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns true via loc categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns true via nat categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns true when loc missing but nat has categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when no categories anywhere 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when loc no categories and nat disabled 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when nat no categories and loc disabled 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest IsConfiguredForRestaurant returns false when neither loc nor nat 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "photos_enabled" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "photos_required" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "commentaries_enabled" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "commentaries_required" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "documents_enabled" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "documents_required" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "reminder_date_enabled" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanParametersServiceTest UpdateSetting accepts all whitelisted fields with data set "reminder_date_required" 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveActiveCategories without family uses loc categories 0.009s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveActiveCategories with loc only uses loc categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveActiveCategories with nat only uses family categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveActiveCategories with loc and nat merges both 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData creates settings when missing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData does not recreate settings when present 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData counts past reminder as urgent 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData passes through the access scope 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes future reminder from urgent count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes null reminder from urgent count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes draft from urgent count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData urgent count sums across statuses 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes finished status from urgent count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes plan with finished at from urgent count even on non finished status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData returns no urgent when no statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData statuses sorted by position 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData includes plan finished within 7 days 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData excludes plan finished more than 7 days ago 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData old finished plan excluded from urgent count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetUrgentPlansData flattens urgent plans across statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetUrgentPlansData sorts by reminded at ascending 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetUrgentPlansData excludes plan with finished at regardless of status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetUrgentPlansData passes through the access scope settings and statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt sets when finished statuses id matches 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt clears when finished statuses id set but status differs 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt stays null without a configured final status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt clears an existing date without a configured final status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt preserves existing finished at when already finished 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ComputeFinishedAt clears when settings is null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest IsFinishedStatus true when configured id matches 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest IsFinishedStatus false when configured id differs 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest IsFinishedStatus is false without a configured final status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveIsDraftOnUpdate stays draft when still requested as draft 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveIsDraftOnUpdate finalizes draft when requested as final 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveIsDraftOnUpdate ignores draft request on already finalized plan 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest ResolveIsDraftOnUpdate stays final when already finalized and no save mode 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest DeleteFileAttachment delegates to repo when the file belongs to the tenant 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest DeleteFileAttachment refuses a file outside the tenant 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetPlansForRecord delegates to repo with correct type and id 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData passes employee id to status twin 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetIndexData passes null employee id through unchanged 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount passes employee id to record twin 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetPlansForRecord keeps plan without finished at 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetPlansForRecord keeps plan finished within 7 days 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetPlansForRecord excludes plan finished more than 7 days ago 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest AuditRecordHasValidatedTask delegates to repo 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest AuditRecordHasValidatedTask bypasses gate for finished period 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest AuditRecordHasValidatedTask delegates to repo when period unknown 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount returns zero when no plans 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount includes finished plans in count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount counts active and finished plans 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount excludes drafts from count 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount hasUrgent true when reminder in past 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount hasUrgent false when reminder after tomorrow 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount hasUrgent false when no reminder 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetAuditPlansCount hasUrgent false when only draft has past reminder 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest FilterByModuleAccess excludes employee with module in forbidden 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest FilterByModuleAccess includes employee without forbidden modules 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest FilterByModuleAccess includes employee with other forbidden module 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest FilterByModuleAccess restores current employee when filtered out 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetResponsableEmployees returns a collection 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetResponsableEmployees delegates to repo with correct restaurant 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetResponsableEmployees filters out employees without module access 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest GetResponsableEmployees preserves current employee when access revoked 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest FilterByModuleAccess does not duplicate current employee already in list 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest SanitizeFileName replaces spaces with dashes 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest SanitizeFileName strips special characters but keeps dashes 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest SanitizeFileName strips underscores 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest SanitizeFileName keeps already safe name with dash unchanged 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload uses category name and icon when not locked 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload locked category overrides resolved category 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload refuses an audit record outside the tenant 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload falls back to empty strings when no category or status 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload defaults recordable type to action plan when absent 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildStorePayload turns empty selects into null not zero 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildUpdatePayload freezes category and description once the plan is saved 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildUpdatePayload accepts the submitted values while the plan is a draft 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildUpdatePayload falls back to plan statuses name when status not found 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanServiceTest BuildUpdatePayload turns empty selects into null not zero 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveSyncAuthorEmployeeId accepts an employee of the restaurant 0.019s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveSyncAuthorEmployeeId accepts a numeric string 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveSyncAuthorEmployeeId rejects an employee of another restaurant 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveSyncAuthorEmployeeId rejects empty zero and garbage 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetCategoriesToSync delegates and returns array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetSettingsToSync delegates and returns array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetActionPlansToSync delegates and returns array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetAttachedFilesToSync delegates and returns array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetCommentsToSync delegates and returns array 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetStatusesToSync returns empty array when no settings id 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetStatusesToSync delegates when settings id provided 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetStatusesToSyncForRestaurantTablet returns empty when settings missing 0.004s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetStatusesToSyncForRestaurantTablet delegates with tablet sync date 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest GetStatusesToSyncForRestaurantTablet ignores last sync when forced 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange does not log when statuses id is null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange does not log when status unchanged 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange logs when status changes 0.001s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange logs when old status was null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange records tablet author and assigned snapshot 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogStatusChange ignores a tablet author foreign to the restaurant 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment does not log when plan has no employee 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment does not log when assignee is unchanged 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment logs the initial assignment when previous is null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment logs a reassignment 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest SyncAttachedFile returns invalid file error when file is null 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest SyncAttachedFile returns invalid file error when file not valid 0.003s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest SyncAttachedFile returns error when action plan not found 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest SyncAttachedFile returns error when storage fails 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest SyncAttachedFile returns success with record id on new file 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when no setting 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when no active statuses 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns true via loc categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns true via nat categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns true when loc missing but nat has categories 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when no categories anywhere 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when loc no categories and nat disabled 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when nat no categories and loc disabled 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest IsConfiguredForRestaurant returns false when neither loc nor nat 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveStatusId takes the server name when id already valid 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveStatusId matches by name when id is stale sqlite id 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveStatusId returns null id when no match by name 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveStatusId handles null name without error 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveStatusId recovers the id from the name when the payload has no id 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveCategoryId keeps id when already valid 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveCategoryId matches by label when id is stale 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest ResolveCategoryId returns null when no match 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents new plan not draft not finished fires created only 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents new plan created directly finished fires both in order 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents new plan as draft fires nothing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents new plan draft and finished fires nothing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan leaving draft fires created 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan leaving draft and finished fires both 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan transitioning to finished fires finished only 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan already finished fires nothing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan still draft fires nothing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest DecideNotifyEvents existing plan no change fires nothing 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment now records the author and the previous assignee 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogAssignment records no author when the tablet sends none 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogReminderChange does not log when the date is unchanged 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogReminderChange logs when the date moves 0.000s
βœ… Tests.Unit.ActionPlan.ActionPlanSyncServiceTest LogReminderChange logs a date being cleared 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest Apply on an empty journal returns an empty collection 0.012s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest Apply sorts events chronologically 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest An assignment is ordered before a status change of the same instant 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest A status change before any assignment has no known assignee 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest A status change after an assignment resolves that assignee 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest A reassignment only applies to later events 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest An assignment event carries the assignee it institutes 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest JournalLines renders one single line for a batch that changed two fields 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest The line of a batch carries every field the save changed 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest A change of the reminder date alone still produces a line 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest An event without batch forms its own line 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest ResolvedState is a snapshot and never leaks a later value 0.000s
βœ… Tests.Unit.ActionPlan.StatusChangelogTimelineTest JournalLines ignores the events of another module 0.000s
βœ… Tests.Unit.Alert.AuditContactPivotsTest The opt in is read in a single query for the whole population 0.004s
βœ… Tests.Unit.Alert.AuditContactPivotsTest Only contacts whose master switch is on are submitted to the opt in query 0.000s
βœ… Tests.Unit.Alert.AuditContactPivotsTest Pivot values follow the double condition 0.000s
βœ… Tests.Unit.Alert.AuditContactPivotsTest Every contact gets a pivot row even when nobody is opted in 0.000s
βœ… Tests.Unit.Alert.AuditContactPivotsTest A non array iterable is traversed twice without being exhausted 0.000s
βœ… Tests.Unit.Alert.AuditContactPivotsTest An empty population produces an empty map 0.000s
βœ… Tests.Unit.Api.AdoriaSyncFixtureBenchmarkTest Sync replay fixture is idempotent and reports timings 0.060s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Get data throws when menu request fails 0.054s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Get data treats menu plan 404 as empty 0.039s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Get data still throws when menu returns server error 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Menu plan 404 is treated as empty http error 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Get data throws on html error body that is not json 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Kitchen catalog is cached across calls 0.037s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Kitchen failure does not abort menu import 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Test connection returns false instead of throwing 0.037s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Test connection returns true when multi step setup is incomplete 0.037s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Test connection returns false when organization token is rejected 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Sync adoria connexion job uses retries and api sync queue 0.039s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Sync adoria api defaults to single job mode 0.038s
βœ… Tests.Unit.Api.AdoriaSyncResilienceTest Sync adoria api per connexion mode shortens parent timeout 0.038s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Src api token is trimmed on assignment 0.042s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Src api token trim ignores non string values 0.038s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Equilibre get data throws when auth token request fails 0.039s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Equilibre get data throws when site id is rejected by api 0.037s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Equilibre test connection returns false instead of throwing on invalid site 0.038s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Equilibre test connection returns true when api legitimately has no data 0.039s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Compass test connection returns false instead of throwing 0.039s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Easilys test connection returns true when id site not yet selected 0.042s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Easilys get data throws when id site is missing 0.039s
βœ… Tests.Unit.Api.ApiConnectionResilienceTest Easilys test connection returns false when every request fails 0.039s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Equilibre daily resync does not duplicate control reception import 11.351s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Equilibre daily resync does not duplicate product imports 10.289s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Equilibre without prepare sync reproduces duplicate imports 10.274s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Equilibre orphan product import is relinked not duplicated 11.254s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Easilys resync does not duplicate control reception and product imports 9.708s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Compass resync does not duplicate control reception and product imports 10.163s
βœ… Tests.Unit.Api.ApiImportedDataDuplicatePreventionTest Get existing data depends on restaurant context 9.012s
βœ… Tests.Unit.Api.EquilibreSyncFixtureBenchmarkTest Sync replay fixture is idempotent and reports timings 0.064s
βœ… Tests.Unit.Api.ImportApisSyncGuardsTest Ajax is active toggle does not reset import apis on local service 0.097s
βœ… Tests.Unit.Api.ImportApisSyncGuardsTest Ajax is active toggle does not reset import apis on indep service 0.041s
βœ… Tests.Unit.Api.ImportApisSyncGuardsTest Full form submit without import apis resets them 0.041s
βœ… Tests.Unit.Api.ImportApisSyncGuardsTest Sync query excludes inactive restaurants but keeps client family connexions 0.040s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Une photo de tache est acceptee 0.009s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un php renomme en jpg est refuse sur son contenu 0.022s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un php garde son extension est refuse avant meme le contenu 0.000s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un fichier sans extension est refuse 0.000s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un document bureautique reste accepte 0.001s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un pdf est refuse sur la photo et accepte sur le document 0.000s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Un svg est refuse car il s execute dans notre origine 0.000s
βœ… Tests.Unit.AttachedFiles.AllowedUploadTest Une page html est refusee 0.000s
βœ… Tests.Unit.AttachedFiles.AttachedFileSyncServiceTest SyncAttachedFile dispatches to action plan sync service by default 0.003s
βœ… Tests.Unit.AttachedFiles.AttachedFileSyncServiceTest SyncAttachedFile dispatches to audit sync service for audit action task 0.000s
βœ… Tests.Unit.AttachedFiles.AttachedFileSyncServiceTest SyncAttachedFile rejects unknown attachable type 0.000s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest National copy never touches the forbidden employees pivot 0.052s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest Local copy still copies the forbidden employees pivot 0.041s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest National update never touches the forbidden employees pivot 0.040s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest Local update still forbids everyone when no employee is checked 0.039s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest Local update forbids only the unchecked employees 0.038s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest National edit page never loads the employee referential 0.045s
βœ… Tests.Unit.Audits.AuditEmployeeReferentialTest Local edit page still loads the employee referential 0.037s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditsToSync enriches each audit with forbidden employees ids 0.005s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditDirectoriesToSync enriches audits ids and removes audits relation 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionsToSync prefixes consigne when present 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionsToSync leaves empty consigne untouched 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionsToSync forwards lastSync and withTrashed to repository 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditExtraActionsToSync delegates and returns array 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync forwards fix 5677 filters to repository 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync enables incremental filter when no reset nor resend 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync skips tasks without allAuditAction or audit 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync sorts national before local and recomputes positions 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync aggregates images and uses last as task image 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync leaves image null when no images 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync copies fields from allAuditAction and unserializes extraActions 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAuditActionTasksToSync sets extraActions null when empty 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns status false when no id and no match by valid until 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask resolves by ovh id when tablet uses ovh 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask resolves directly by id when tablet has no ovh 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask resolves via 2023 11 17 hardcoded range and skips general fallback 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask falls through to general range when 2023 11 17 range is ambiguous 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask falls back to general day range for non 2023 11 17 dates 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns status false when day range fallback is ambiguous 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not update when task is already done 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns validation errors when task invalid without resolving ids 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask fills task and sets technical fields 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask resolves related ids after validation 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns success with id when save succeeds 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns failure without id when save fails 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not regenerate cycle when audit missing 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not regenerate cycle when period not finished 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not regenerate cycle when audit disabled for restaurant 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask treats unset client audits disabled as empty 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not regenerate cycle when achievement not done 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask regenerates into existing current record 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask regenerates into brand new record when none current 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask ignores invalid image and follows no image path 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask returns invalid image error when size zero 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask attaches image and saves when move and creation succeed 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask does not save when image creation fails 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage uses ovh lookup when tablet uses ovh 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage uses direct lookup when tablet has no ovh 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage returns status false when task not found 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage returns status false when image missing 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage returns status false when image invalid 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage returns invalid image error when size zero 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage uses task date not today for destination and returns created image 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage reports failure when created image does not exist 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile returns invalid file error when file is null 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile returns invalid file error when file not valid 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile returns error when task not found 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile returns error when storage fails 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile returns success with record id on new file 0.001s
βœ… Tests.Unit.Audits.AuditSyncServiceTest GetAttachedFilesToSync delegates and returns array 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAuditActionTask confronte la tache au restaurant appelant 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest AddAuditActionTaskImage confronte la tache au restaurant appelant 0.000s
βœ… Tests.Unit.Audits.AuditSyncServiceTest SyncAttachedFile confronte la tache au restaurant appelant 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest GetEditData returns comments and documents for existing task 0.014s
βœ… Tests.Unit.Audits.AuditTaskServiceTest AddComment creates comment when text non empty 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest AddComment trims text before creating 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest AddComment is noop when text empty or blank 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest DeleteComment delegates to repository 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest DeleteDocument delegates to repository 0.000s
βœ… Tests.Unit.Audits.AuditTaskServiceTest GetDocumentForView delegates to repository 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetFilters returns the three filter groups with their labels 0.003s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetRecords passes the client hook values to the repository 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetRecords accepts a null restaurant id 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetTasks passes the client hook value and a hardcoded page size 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod widens a week by one week on each side 0.001s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod widens a thirty day month by one month on each side 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod overshoots by two months when the month ends on the 31st 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod widens a year by one year on each side 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod never goes past today 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod returns the period untouched for an unknown periodicity 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest ExpandCalendarPeriod mutates the carbon instances it receives 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarCellPeriod spans from the start day to the end of its week 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarCellPeriod spans to the end of the month 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarCellPeriod spans to the end of the year 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarCellPeriod covers the single day for an unknown periodicity 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarCellPeriod mutates the start date it receives 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarDetailPeriod extends only the end to its period 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarDetailPeriod leaves the bounds alone for all 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarDetailPeriod extends the end to the end of its month 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarDetailPeriod only reaches the end of day for an unknown periodicity 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetCalendarAggregates asks for the extended flag and keys by restaurant 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetCalendarAggregates defaults the family filter to an empty array 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells gives every active restaurant a cell even without audits 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells skips inactive restaurants entirely 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells fills the aggregates and formats the ratio 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells ignores aggregates for unknown restaurants 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells marks a restaurant closed over a whole week 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells does not mark closed when the restaurant opens once 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildCalendarCells never computes closed beyond a week 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetSelectedFamilyNames joins the names of the selected families 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetSelectedFamilyNames returns an empty string without a family filter 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest GetSelectedFamilyNames ignores ids the client does not own 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarRowClass flags a non conforme record first 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarRowClass warns on a record that was not done 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarRowClass marks a record in progress as pending 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest CalendarRowClass returns no class for anything else 0.000s
βœ… Tests.Unit.Audits.AuditsBoardServiceTest BuildRecordPdfData returns null when the record does not exist 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetIndexPageData returns the action and its ordered extra actions 0.008s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetIndexPageData returns null when the action does not exist 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetIndexPageData returns null when the action belongs to someone else 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetCreatePageData returns a blank action with colors and type labels 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetCreatePageData returns null for a foreign action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetEditPageData returns the extra action with colors and type labels 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetEditPageData leaves auditAction null when the relation is orphan 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest GetEditPageData returns null for a foreign extra action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest StoreExtraAction sets owner active position and parent then saves 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest StoreExtraAction lets the post overwrite the computed position and active 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest StoreExtraAction returns null and saves nothing for a foreign action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest UpdateExtraAction returns the saved branch with the filled action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest UpdateExtraAction returns the save failed branch when the repository refuses 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest UpdateExtraAction returns the not found branch for a foreign extra action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest DeleteExtraAction returns status true when the repository deletes 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest DeleteExtraAction returns status false with an error when the delete fails 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest DeleteExtraAction returns a bare false status for a foreign extra action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest ReorderExtraActions numbers the given ids from one 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest ReorderExtraActions skips empty ids without burning a position 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest ReorderExtraActions reuses the position of a row the repository refused 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest ReorderExtraActions returns false for a foreign action 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput promotes the custom fields on the quantity type 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput ignores the custom fields on other types 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput turns empty bounds into null 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput falls back on the minimum for an empty default 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput falls back on one when there is no minimum 0.000s
βœ… Tests.Unit.Audits.AuditsExtraActionsServiceTest NormalizeTemperatureInput leaves filled values alone 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetHistoryFilters returns static filters config 0.007s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetRecordsForHistory delegates to repository and returns its result 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetTasksForHistory delegates to repository with given perPage 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetTasksForHistory defaults perPage to 250 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest FindAuditRecordForExport delegates to repository 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest FindAuditRecordForExport returns null when not found 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest CanAccessRecordForExport returns false when record is null 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest CanAccessRecordForExport returns true when client guard regardless of authUserId 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest CanAccessRecordForExport returns true when not client guard and authUserId matches restaurant 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest CanAccessRecordForExport returns false when not client guard and authUserId does not match 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest BuildDirectPdfExportData returns null when record not found 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetXlsHistoryFilename uses user modules name 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetXlsTasksHistoryFilename returns fixed label 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetActionsPopupData returns null when record not found 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetPopupData returns default view without repository call when type is unknown 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest GetRecordDetailsById returns null when task not found 0.000s
βœ… Tests.Unit.Audits.AuditsHistoryServiceTest PrepareDocumentDownload returns file when linked task exists 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetIndexPageData groups audits by period 0.004s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest StoreAudit sets defaults and syncs contacts when save succeeds 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest StoreAudit does not sync contacts when save fails 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetEditPageData returns null when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetEditPageData returns null when audit belongs to another restaurant 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetEditPageData returns full data when audit belongs to restaurant 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetTasksActionsPageData returns null when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetTasksActionsPageData returns null for a foreign audit 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetTasksActionsPageData returns data for an owned audit 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest UpdateAudit returns not found when audit missing 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest UpdateAudit returns not found when foreign audit and not same family 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest UpdateAudit falls through to not found when family matches but active key absent 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetShowPageData returns null when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetShowPageData returns null when audit belongs to another restaurant 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetShowPageData returns audit and periods when owned 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DestroyAudit returns deleted false when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DestroyAudit returns deleted false when foreign audit 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DestroyAudit returns deleted true when owned and delete succeeds 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DestroyAudit returns deleted false when delete fails 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ImportXlsxRows returns status false when file invalid 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ExportAuditActions returns null when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ReorderAudits upserts position for each valid id and skips empty 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ReorderAudits skips id not found by repository 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ReorderActions upserts position without active field 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest CreateAction returns null when audit not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest CreateAction defaults coefficent to one when empty 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest CreateAction keeps provided coefficent 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest CreateAction creates extra actions when provided by import 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest CreateAction does not create extra actions when absent 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetCreateDirectoryPageData returns expected structure 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetEditDirectoryPageData returns null when directory not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetEditDirectoryPageData combines audits without directory and directory audits 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest SaveDirectory creates new directory with defaults when directoryId null 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest SaveDirectory uses provided name and color 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest SaveDirectory assigns new audits to directory when save succeeds 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest SaveDirectory does not assign audits when save fails 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest SaveDirectory update mode unassigns removed audits and keeps still selected ones 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DeleteDirectory returns deleted false when directory not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DeleteDirectory returns deleted false when foreign directory 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DeleteDirectory moves audits out when moveAudits true 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DeleteDirectory deletes audits when moveAudits false 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest DeleteDirectory returns deleted false when repository delete fails 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest The tenant is forwarded to the repository when deleting a directory 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetShowDirectoryPageData returns null when directory not found 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest GetShowDirectoryPageData groups audits by period without ownership check 0.000s
βœ… Tests.Unit.Audits.AuditsParametersServiceTest ToggleDirectoryActive returns status false when directory not found 0.000s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest CreatedAt counts in the records period centrally but not for a client 0.008s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest The central records screen is not paginated while the client one is 0.000s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest The realisation filter constrains tasks centrally but not for a client 0.000s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest The client xls filename is a constant and ignores the restaurant 0.000s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest The client tasks xls filename is a constant 0.000s
βœ… Tests.Unit.Audits.CentralAuditsBoardServiceTest The client pdf filename is prefixed by a literal and carries the creation date 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest GetTaskDetailData returns null when task not found 0.002s
βœ… Tests.Unit.Audits.LocalAuditServiceTest GetTaskDetailData returns task and extraActions when found 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest GetTaskDetailData passes null auditActionId when no auditAction 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTask returns null when task not found 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTask returns success true and task when update succeeds 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTask returns success false when update fails 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch skips task not found by repository 0.002s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch skips update when rate empty 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch updates task with expected data when rate present 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch defaults comment and extraActions when absent 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch calls tasksUpdated once when auditRecord present 0.001s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch does not call tasksUpdated when no auditRecord 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch retains audit and auditRecord from first resolving task 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch does not regenerate cycle when period is not finished 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest UpdateTasksBatch does not regenerate cycle when achievement is not done 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest RemoveTaskImage returns false when image not found 0.000s
βœ… Tests.Unit.Audits.LocalAuditServiceTest CheckDirectoryPassword returns true when password matches 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetIndexData returns empty collections and null employee 0.004s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetTasksPageData returns null 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetTaskDetailData returns null when entity is null 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetTaskDetailData scopes lookup to client restaurant ids 0.001s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetTaskDetailData returns task and extraActions when found 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetTaskDetailData passes null auditActionId when no auditAction 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest UpdateTask returns null 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest UpdateTasksBatch is a noop 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest AddTaskImage returns null 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest RemoveTaskImage returns false 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest GetDirectoryViewData returns periods and directory with empty audits 0.000s
βœ… Tests.Unit.Audits.MultiAuditServiceTest CheckDirectoryPassword returns true when password matches 0.000s
βœ… Tests.Unit.Audits.MultiAuditsExtraActionsServiceTest OwnerColumn is the family column nationally and the restaurant column locally 0.003s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest OwnerColumn is the family column nationally and the restaurant column locally 0.001s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest ManagesForbiddenEmployees is off nationally and on locally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest TaskScopeArgument scopes the regeneration to the family nationally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest TaskScopeArgument scopes the regeneration to the restaurant locally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest TaskScopeArgument returns on both contexts instead of recursing 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest InheritsFromFamily is false nationally because a family is the top 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest DirectoryIsAccessible requires strict family ownership nationally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest DirectoryIsAccessible is unconditionally true locally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest DeleteDirectory guards on the family column nationally 0.000s
βœ… Tests.Unit.Audits.MultiAuditsParametersServiceTest StoreAudit asks for the contacts of its own owner in both contexts 0.001s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetShowPageData returns audits and folders from repository 0.003s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetAreaPopupData uses new audit and includes all periods when id is null 0.000s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetAreaPopupData uses existing audit and filters periods to its own period 0.000s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetAreaPopupData parent values only include audits without actions 0.000s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetActionPopupData creates new action when actionId is null 0.000s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetActionPopupData finds local override action when actionId given 0.000s
βœ… Tests.Unit.Audits.SimpleAuditsParametersServiceTest GetActionPopupData returns null audit when audit not found even with trashed 0.000s
⏭️ Tests.Unit.CleaningPlan.CleaningPlanObserverTest Activating parent propagates to children 0.000s
⏭️ Tests.Unit.CleaningPlan.CleaningPlanObserverTest Deactivating parent propagates to children 0.000s
⏭️ Tests.Unit.CleaningPlan.CleaningPlanObserverTest Unchanged value does not touch children 0.000s
⏭️ Tests.Unit.CleaningPlan.CleaningPlanObserverTest Parent without children does not throw 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc own active zone is proposable 0.003s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc own disabled zone stays proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc active national zone is proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc disabled national zone is not proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc national zone refused by this restaurant is not proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc zone of another restaurant is never proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Loc restaurant without family only sees its own 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Nat active national zone is proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Nat disabled national zone is not proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Nat local zone of an establishment is not proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Nat zone of another family is not proposable 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Zone without parent is in inactive branch only if itself disabled 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Active zone under disabled parent is in inactive branch 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Inactive ancestor is detected at any depth 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanParentOptionRulesTest Fully active chain is not in inactive branch 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Always expected valid until without expiration uses year 3000 0.003s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Always expected valid until with expiration adds days from valid from 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Always expected valid until when valid from null uses fallback now 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Valid from copy is not mutated when computing expected until 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Day skip when closed and week closure covers task slot 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Day not skipped when restaurant marked open 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Frequency loop indices match service loop 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Frequency one does not require index number in query 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Frequency greater than one requires index per iteration 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Always branch should create new row when expected until already passed 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Always branch should not create new row when expected until still future 0.000s
βœ… Tests.Unit.CleaningPlan.CleaningPlanTaskGenerationPureLogicTest Idempotence window same calendar day 0.000s
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Nat plan disabled at loc does not generate tasks 0.147s Nat plan disabled at loc does not generate tasksErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/b1/db/b1dbf705d8c0a6eea597ccac7f49c32c4722d864): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:265 at v
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Nat action disabled at loc does not generate tasks 0.106s Nat action disabled at loc does not generate tasksErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/5b/0d/5b0d65c20856e27d1d96d5c47bf363b7c9754eb3): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:265 at
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Closed restaurant stops generation 0.100s Closed restaurant stops generationErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/e2/76/e276ebc58d8820f0672d946f96e46245842601af): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:265 at vendor/laravel/
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Always is idempotent then regenerates when expired path hits 0.099s Always is idempotent then regenerates when expired path hitsErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/37/99/3799fc518a912a3985407fd5c8e0d80243c7c800): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Frequency increase from one reuses existing task as main 0.114s Frequency increase from one reuses existing task as mainErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/bb/67/bb67471e1d1b1934b13b603b5d526951f81cee58): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Frequency generates indexed children linked to first task 0.102s Frequency generates indexed children linked to first taskErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/2f/df/2fdf1732c23ef48ef25c59d57c3b34c2e7dd1edb): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Only action id generates only target action tasks 0.103s Only action id generates only target action tasksErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/1c/48/1c48f5479c0514a249ac6671db043b94547b5fe6): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:265 at
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Always updates valid until without modifying existing valid from 0.101s Always updates valid until without modifying existing valid fromErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/2d/f2/2df26758653f664810f0002c3b67e5abaf2bf785): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExcepti
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Always friday only with expiration catch up after expiry on saturday 0.101s Always friday only with expiration catch up after expiry on saturdayErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/24/6c/246c86618f35012a272db419c892b693b9635fed): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExc
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Loc action on nat plan still generates when nat action disabled at loc 0.104s Loc action on nat plan still generates when nat action disabled at locErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/44/2e/442e795ffb716cbb9333fd7a4891384ee52acbbe): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleE
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Day task not skipped when week closure does not cover full action slot 0.101s Day task not skipped when week closure does not cover full action slotErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/96/4b/964b570a3ebe18e2b5feeb5502da1180bf498b0b): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleE
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Day task skipped when week closure covers full action slot 0.109s Day task skipped when week closure covers full action slotErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/b5/14/b514e19f75bafc260c133efb5098d934f993f210): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.ph
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Day task skipped when week closure is full day with same start end hour 0.104s Day task skipped when week closure is full day with same start end hourErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/1e/eb/1eeb6e122e5d9bbaef0c3f61b779503b8a6e4d73): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/Handle
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Frequency generation is idempotent on same period window 0.101s Frequency generation is idempotent on same period windowErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/40/a3/40a3079807e2e5ce88635f3523ed3a661d86077c): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Week task skipped when restaurant closed all week period 0.102s Week task skipped when restaurant closed all week periodErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/02/83/02834979c1affd070fe01f533737a642ebc6018d): Failed to open stream: No such file or directory at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExcepti
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Nat parent disabled blocks child nat action generation regression 0.102s Nat parent disabled blocks child nat action generation regressionErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/52/14/5214cd90be5f171059d08cba52b99efa9f8afa34): Failed to open stream: No such file or directory at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/Hand
⚠️ Tests.Unit.CleaningPlan.CleaningPlanTaskGeneratorServiceIntegrationTest Nat loc disabled and several generations 0.123s Nat loc disabled and several generationsErrorException: fopen(/var/www/octopus-haccp/storage/framework/cache/fb/5e/fb5ec57b09f5025ab370b99b2439403cac4eb881): Failed to open stream: Permission denied at vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:265 at vendor/la
βœ… Tests.Unit.CleaningPlan.RestaurantCleaningPlanActionActiveTest Active zero disables family action 0.006s
βœ… Tests.Unit.CleaningPlan.RestaurantCleaningPlanActionActiveTest Active one keeps family action when not disabled list 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Loc action active when restaurant id matches and active one 0.001s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Loc action inactive when active zero 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action active when family matches and no disabled list 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action inactive when disabled for plan at loc 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action still active when sibling action disabled on same plan 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action inactive when national row inactive without effective override 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action inactive when active zero even if base active one 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat action false when family mismatch 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Loc action uses effective not only base active for restaurant row 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Loc action on nat plan evaluated as restaurant row 0.000s
βœ… Tests.Unit.CleaningPlan.RestaurantNatLocCleaningPlanActionTest Nat disabled list ignored for pure loc action same restaurant id 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest History page is safe 0.003s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Download url is unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Export xls trigger url is unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Cooking temperature xls trigger url is unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Pdf export trigger url is unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Foreign host is unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest Empty and null are unsafe 0.000s
βœ… Tests.Unit.Common.ExportDispatchResponseTest In app browser exit urls are unsafe 0.000s
βœ… Tests.Unit.Common.ExportToSpreadsheetActionTest Writes rows to file 0.046s
βœ… Tests.Unit.Common.ExportToSpreadsheetActionTest Writes a file when there are no rows 0.004s
βœ… Tests.Unit.Common.ReadSpreadsheetActionTest Reads rows keyed by header 0.005s
βœ… Tests.Unit.Export.AuditRecordExportTest No action plan returns two dashes 0.002s
βœ… Tests.Unit.Export.AuditRecordExportTest Action plan returns description then status 0.001s
βœ… Tests.Unit.Export.AuditRecordExportTest Action plan with null description falls back to dash 0.000s
βœ… Tests.Unit.Export.AuditRecordExportTest Action plan with null status falls back to dash 0.000s
βœ… Tests.Unit.Export.AuditRecordExportTest Action plan without description nor status 0.001s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Reflects localhost 5200 on sync tablet for hot reload 0.003s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Allows hot reload origin on any path outside production 0.000s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Blocks hot reload origin in production 0.000s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Allows options preflight from localhost 5200 on sync tablet 0.000s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Allows https localhost without port on any path in production 0.000s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Allows 127 0 0 1 with port on sync paths 0.000s
βœ… Tests.Unit.Http.Middleware.CorsMiddlewareTest Does not reflect untrusted origin on sync tablet 0.000s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest countAlertsGroupedByLogger groups sent SMS-triggering alerts by logger, across restaurants 10.014s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest generate identifies only the logger above the threshold and reaches a conclusion for it 9.436s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest generate excludes CIRL restaurants by default and includes them with withCirl 8.865s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest generate includes a logger below the alert threshold when SMS volume exceeds it 9.667s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest diagnoseLogger sets peakAlertDay to the day with the most alerts 9.415s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest diagnoseLogger sets peakAlertDay to the earliest day when two days tie 10.559s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest diagnoseLogger ignores alert_sent=false events when computing peakAlertDay 9.317s
βœ… Tests.Unit.Loggers.AlertOptimizationReportServiceTest generate excludes a logger below the alert threshold when events have no SMS recipient 9.640s
βœ… Tests.Unit.Loggers.ContactsSnapshotBuilderTest snapshot marks all channels active with empty skipped_reason 9.480s
βœ… Tests.Unit.Loggers.ContactsSnapshotBuilderTest snapshot marks contact in closed dates with skipped_reason closed_dates 9.474s
βœ… Tests.Unit.Loggers.ContactsSnapshotBuilderTest snapshot marks inactive channels and nc alerts with distinct skipped_reason 9.419s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest isAdjustable is true only for A/B/C/F 0.002s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatAction for C omits the justification stat and only states the reduction 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatAction for B omits the readings-coverage justification stat 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatAction for F omits the historical-coverage stat 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatAction for F appends the restaurant timezone when provided 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatActionLines for A lists both temperature steps when present 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest formatActionLines for C lists both duration steps when present 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest format includes the shared header for adjustable categories, formatAction does not 0.000s
βœ… Tests.Unit.Loggers.DiagnosisSummaryFormatterTest format for non-adjustable categories is unchanged and self-contained 0.000s
βœ… Tests.Unit.Loggers.DizzyBackToNormalFutureLogTest dizzy_back_to_normal (standalone) chart still includes a resolving log timestamped after "now" 9.415s
βœ… Tests.Unit.Loggers.DizzyChartPeriodBuilderTest dizzy chart periods pair started and ended within day 0.001s
βœ… Tests.Unit.Loggers.DizzyChartPeriodBuilderTest dizzy chart periods continue open dizzy until end of day 0.000s
βœ… Tests.Unit.Loggers.DizzyChartPeriodBuilderTest dizzy chart periods inherit dizzy state from before day start 0.000s
βœ… Tests.Unit.Loggers.DizzyChartPeriodBuilderTest dizzy chart periods format overlays in the day timezone 0.000s
βœ… Tests.Unit.Loggers.DizzyEndedTempOngoingSuppressionTest temp_ongoing dizzy_ended is suppressed when already notified since the active issue started 10.088s
βœ… Tests.Unit.Loggers.DizzyEndedTempOngoingSuppressionTest temp_ongoing dizzy_ended is sent when no notification has fired since the active issue started 10.604s
βœ… Tests.Unit.Loggers.DizzyEndedTempOngoingSuppressionTest temp_ongoing dizzy_ended stays suppressed across repeated flaps even when no temperature_issue event was ever recorded 10.220s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailCopyTest period expected points cover dizzy started to now not a near-zero duration 0.043s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailCopyTest dizzy issue mail context uses reception-period counts since dizzy started 0.054s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailCopyTest dizzy temperature issue mail keeps period ratio on first sentence and window on temperatures 0.046s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest chart svg renders a polyline for multiple temperature points 0.046s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest chart svg is empty with fewer than two points 0.041s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest mail context builder exposes dizzy period stats 0.045s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest mail context builder exposes compliant since for back to normal 0.054s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest mail context builder uses window scope for dizzy back to normal with started 0.055s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy mail stats include ignored logs in window scope 0.055s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy temperature issue chart uses logs since dizzy started while stats stay on window 0.042s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest mail context builder exposes dizzy ended period recap 0.041s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended stats include ignored logs like the chart 0.053s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended temp resolved exposes compliant since from reference log 0.043s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended temp appeared does not expose compliant since 0.044s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended period start uses dizzy started when older than sliding window 0.042s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended temp appeared exposes anomaly started at from reference log 0.041s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended period start uses sliding window when dizzy started is more recent 0.041s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueMailTest dizzy ended mail context uses recap ended_at instead of now for stats and chart 0.040s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueRepeatSuppressionTest dizzy_temperature_issue is not re-sent on a repeat flap while an alert is already active 9.973s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueRepeatSuppressionTest dizzy_temperature_issue is sent when no alert is currently active and a 2nd reading already confirms it 10.124s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueRepeatSuppressionTest dizzy_temperature_issue is deferred when only one reading has been received 9.471s
βœ… Tests.Unit.Loggers.DizzyTemperatureIssueRepeatSuppressionTest a deferred dizzy_temperature_issue is sent once a second reading confirms it 9.533s
βœ… Tests.Unit.Loggers.ExclusionWindowOptimizerTest optimize recommends an exclusion window when a recurring daily block would be suppressed by it 12.418s
βœ… Tests.Unit.Loggers.ExclusionWindowOptimizerTest optimize returns null when there are too few alerts to find a candidate window 9.750s
βœ… Tests.Unit.Loggers.ExclusionWindowOptimizerTest optimize returns null when the baseline has no episodes to begin with 10.062s
βœ… Tests.Unit.Loggers.FridgeLoggerLogObserverTest created delegates to the timescale sync service 0.048s
βœ… Tests.Unit.Loggers.FridgeLoggerLogObserverTest updated delegates to the timescale sync service 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest reporting() stays on mysql when TSDB_READ_ENABLED is off 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest reporting() switches to timescale when TSDB_READ_ENABLED is on 0.040s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest reporting() still benefits from the recorded_at mirroring when on timescale 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest the default (bare) query builder is unaffected by the flag 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest eager-loaded relations stay on mysql even when the parent is queried on timescale 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest the self-referential logAlertSend relation is unaffected (already pinned to mysql on its own) 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogReportingScopeTest relations are left alone when the parent stays on mysql 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest whereBetween on timestamp mirrors recorded_at with a 1 day safety margin on timescale 0.041s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest whereBetween on timestamp is left untouched on mysql 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest a lower-bound where on timestamp mirrors recorded_at on timescale 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest an upper-bound where on timestamp mirrors recorded_at on timescale 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest an equality where on timestamp is not mirrored (too risky to assume exact recorded_at match) 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleQueryBuilderTest a where on a column other than timestamp is left untouched on timescale 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest does nothing when sync is disabled 0.042s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest does nothing when the benchmark override targets timescale as the primary connection 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest does nothing when the log has no id yet 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest does nothing when the log has no recorded_at 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest upserts the log into timescale with matching bindings when enabled 0.039s
βœ… Tests.Unit.Loggers.FridgeLoggerLogTimescaleSyncTest catches a failed upsert and logs it instead of breaking the caller 0.041s
βœ… Tests.Unit.Loggers.FridgeLoggerPdfChartBuilderTest pdf day windows cover each restaurant-local day of the period 0.040s
βœ… Tests.Unit.Loggers.FridgeLoggerPdfChartBuilderTest pdf day window for martinique includes paris 06:00 of that date 0.038s
βœ… Tests.Unit.Loggers.FridgeLoggerRefactorBenchmarkTest Stable ok reports refactored overhead vs legacy 29.189s
βœ… Tests.Unit.Loggers.FridgeLoggerRefactorBenchmarkTest Query profiler classifies sql 9.352s
❌ Tests.Unit.Loggers.HistoryDataControllerSopalogTest grouped by day: totals, anomalies and comments match the seeded rows 9.456s grouped by day: totals, anomalies and comments match the seeded rowsFailed asserting that 0 is identical to 1. at tests/Unit/Loggers/HistoryDataControllerSopalogTest.php:84
βœ… Tests.Unit.Loggers.HistoryDataControllerSopalogTest grouped by day and logger: per-logger temperature stats and area fallback 9.256s
βœ… Tests.Unit.Loggers.HistoryDataControllerSopalogTest conformity filter keeps only days with an anomaly 8.843s
βœ… Tests.Unit.Loggers.HistoryDataControllerSopalogTest conformity filter set to confirmed keeps only days without anomaly 8.968s
❌ Tests.Unit.Loggers.HistoryDataControllerSopalogTest comments filter keeps only days with a comment 9.746s comments filter keeps only days with a commentFailed asserting that an array has the key '2026-01-15' at tests/Unit/Loggers/HistoryDataControllerSopalogTest.php:129
❌ Tests.Unit.Loggers.HistoryDataControllerSopalogTest ungrouped mode aggregates the whole period into a single bucket 10.315s ungrouped mode aggregates the whole period into a single bucketFailed asserting that 0 is identical to 1. at tests/Unit/Loggers/HistoryDataControllerSopalogTest.php:138
βœ… Tests.Unit.Loggers.LogAnnotatorTest ignored out-of-range logs keep a physical snapshot without joining the alert streak 0.048s
βœ… Tests.Unit.Loggers.LogAnnotatorTest ignored in-range logs stay at zero counters 0.039s
βœ… Tests.Unit.Loggers.LogAnnotatorTest ignored out-of-range logs do not continue the live alerting streak 0.039s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter reports logger-level exclusion when contacts would be eligible 0.043s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter reports all-contacts exclusion when every channel is excluded 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter reports no active subscribers when contacts are inactive 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter filters out contacts without nc alerts subscription 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter shows contact name only without email or phone 0.041s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter labels contact exclusion as exclusion alertes capteurs 0.041s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest generatesMailOrSms excludes dizzy_started 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest generatesMailOrSms excludes dizzy_ended without mail variant 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest generatesMailOrSms includes dizzy_ended with mail variant or alert_sent 0.039s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest generatesMailOrSms includes temperature issue 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter labels temperature issue after dizzy ended 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest appearsInAlertHistory includes dizzy_started without notification 0.039s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest appearsInAlertHistory includes dizzy ended without variant 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest presenter reports awaiting second reading reason 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest countNotifications tallies sent and not sent mail or sms events 0.040s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest sentAlertsIndexByLogId groups sent contacts by channel 0.041s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest formatSentAlertLinesForLog shows sms and email lines with contacts 0.046s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest formatSentAlertLinesForLog shows only sms when email was not sent 0.039s
βœ… Tests.Unit.Loggers.LoggerAlertEventPresenterTest formatSentAlertLinesForLog returns empty when no sent events exist for log 0.038s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers use linked log coordinates 0.045s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers use timestamp when recorded_at is shifted 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers style back to normal with green checkmark 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers style dizzy ended temp resolved like back to normal 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers style dizzy ended recap as black icon on white 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers skip dizzy ended temp appeared 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest chart alert markers skip events without mail or sms 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest alert marker style uses grey for unsent alerts 0.040s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest dizzy ended temp appeared is excluded from chart 0.039s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest dizzy ended with prior alerts uses white recap style 0.040s
βœ… Tests.Unit.Loggers.LoggerChartAlertMarkerBuilderTest icon char from class returns utf8 glyph 0.038s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest date bounds for a martinique day start at local midnight 0.042s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest day bounds from paris morning timestamp stay on the martinique calendar day 0.039s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest mysql utc offset for martinique is minus four hours 0.040s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest invalid timezone falls back to app timezone 0.042s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest formatHi converts a utc carbon to the restaurant clock 0.039s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest chart axis labels add the date at the start when the window spans two days 0.039s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest apply to logs sets display timezone used by measurement at 0.042s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest calendar period bounds keep paris dates identical for europe/paris 0.038s
βœ… Tests.Unit.Loggers.LoggerDisplayTimezoneTest calendar period bounds reinterpret a paris day as martinique midnight 0.038s
βœ… Tests.Unit.Loggers.LoggerExclusionChartPeriodBuilderTest exclusion chart periods ignore contact-level exclusions 0.004s
βœ… Tests.Unit.Loggers.LoggerExclusionChartPeriodBuilderTest exclusion chart periods support full-day date exclusions 0.000s
βœ… Tests.Unit.Loggers.LoggerExclusionChartPeriodBuilderTest exclusion chart periods merge overlapping week ranges 0.000s
βœ… Tests.Unit.Loggers.LoggerReplayCsvOrderTest csv codec keeps chronological measurements within a batch and replay does not reverse them 0.042s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPngRendererTest png chart is empty with fewer than two points 0.040s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPngRendererTest png chart renders a valid PNG at the requested size for multiple points 0.047s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPngRendererTest png chart stroke is dark rather than white 0.053s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPngRendererTest png chart keeps the last temperature label inside the canvas 0.059s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPurgerTest purge removes only day directories older than the retention window 0.043s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartPurgerTest purge is a no-op when the directory does not exist 0.041s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartSvgRendererTest svg chart plots timestamp even when recorded_at is two hours earlier 0.041s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartSvgRendererTest fridge logger log chart axis uses timestamp not recorded_at 0.039s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartSvgRendererTest svg chart axis labels use restaurant timezone not utc 0.040s
βœ… Tests.Unit.Loggers.LoggerTemperatureChartSvgRendererTest chart axis uses restaurant timezone when provided 0.043s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest skips a logger whose last_log_id is already at or after until 9.835s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest processes a logger whose last_log_id is stale relative to until 9.352s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest skips a logger already caught up to until when no newer data arrived (re-run with same --until) 9.483s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest processes a logger with no prior last_log_id 11.214s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest processes a logger with a legacy last_log_id but no last_event yet 10.019s
βœ… Tests.Unit.Loggers.LoggerWindowStateBackfillerTest cutoff relies on the reading timestamp, not created_at 8.632s
βœ… Tests.Unit.Loggers.NoDataAlertCoordinatorTest applyReconnectContext flags pending no data alert 9.403s
βœ… Tests.Unit.Loggers.NoDataAlertCoordinatorTest resolveViaTemperatureReconnect clears flags and records merged resolution event 9.540s
βœ… Tests.Unit.Loggers.ReceptionQualityAnalyzerTest classify returns category D for a clean, regular cadence multiple of 10 min 8.836s
βœ… Tests.Unit.Loggers.ReceptionQualityAnalyzerTest classify returns category E when alerts fire on windows with low data completeness 8.758s
βœ… Tests.Unit.Loggers.ReceptionQualityAnalyzerTest classify returns null for a normal, well-received sensor 8.725s
βœ… Tests.Unit.Loggers.RestaurantIdFilterTest restaurant id filter parses single id 0.001s
βœ… Tests.Unit.Loggers.RestaurantIdFilterTest restaurant id filter parses comma separated ids 0.000s
βœ… Tests.Unit.Loggers.RestaurantIdFilterTest restaurant id filter trims spaces and deduplicates 0.000s
βœ… Tests.Unit.Loggers.RestaurantIdFilterTest restaurant id filter returns null for empty value 0.000s
βœ… Tests.Unit.Loggers.RestaurantIdFilterTest restaurant id filter rejects invalid tokens 0.000s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest uniqueByNormalizedPhone keeps one contact per distinct phone number 0.043s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest normalizePhone maps french national formats to e164 0.040s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest prepareMessage leaves short messages untouched even with degree symbol 0.039s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest prepareMessage keeps gsm7 french accents like E acute 0.039s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest prepareMessage only rewrites chars outside gsm7 when longer than 70 0.040s
βœ… Tests.Unit.Loggers.SmsPhoneDeduplicationTest prepareMessage leaves real french donnees with e acute unchanged 0.039s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Normal range hour inside returns true 0.002s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Normal range hour outside returns false 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range hour before midnight should return true 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range hour after midnight should return true 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range start boundary should return true 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range end boundary should return true 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range hour clearly outside returns false 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range just before start returns false 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Midnight crossing range just after end returns false 0.000s
βœ… Tests.Unit.Loggers.SopalogBrokerIsDateInClosedDatesTest Closed all day when start equals end returns true at any hour 0.000s
βœ… Tests.Unit.Loggers.StableTemperatureMailTest stable mail context builder starts chart fifteen minutes before anomaly 0.043s
βœ… Tests.Unit.Loggers.StableTemperatureMailTest stable alert chart axis extends to now without including later compliant points 0.040s
βœ… Tests.Unit.Loggers.StableTemperatureMailTest stable mail chart stays in viewbox when recorded_at is shifted from timestamp 0.040s
βœ… Tests.Unit.Loggers.StableTemperatureMailTest stable mail context builder exposes compliant since on resolution 0.045s
βœ… Tests.Unit.Loggers.TemperatureIssueContextTest back_to_normal during exclusion resolves a deferred temperature issue 9.105s
βœ… Tests.Unit.Loggers.TemperatureIssueContextTest deferred issue without resolution stays pending 9.267s
βœ… Tests.Unit.Loggers.TemperatureIssueContextTest isTempOngoingAlreadyNotified is true right after a temp_ongoing dizzy_ended was sent 9.226s
βœ… Tests.Unit.Loggers.TemperatureIssueContextTest isTempOngoingAlreadyNotified is false once a resolution happened after the last dizzy_ended 9.001s
βœ… Tests.Unit.Loggers.TemperatureIssueContextTest isTempOngoingAlreadyNotified is false when no dizzy_ended has fired yet 8.739s
βœ… Tests.Unit.Loggers.TemperatureReminderEvaluatorTest reminder is not sent in the same batch as a fresh temperature issue 8.522s
βœ… Tests.Unit.Loggers.TemperatureReminderEvaluatorTest reminder uses the latest issue after context refresh 8.713s
βœ… Tests.Unit.Loggers.TemperatureReminderEvaluatorTest reminder is sent two hours after the active issue 9.317s
βœ… Tests.Unit.Loggers.TemperatureReminderEvaluatorTest pending temperature issue suppressed by dizzy ended is never sent later 8.475s
βœ… Tests.Unit.Loggers.TemperatureWalkerTest walks from previous temperature within the configured delta 0.002s
βœ… Tests.Unit.Loggers.TemperatureWalkerTest starts at the center of the range when there is no previous reading 0.000s
βœ… Tests.Unit.Loggers.TemperatureWalkerTest resets to the center of the range when reset-to-center is drawn 0.000s
βœ… Tests.Unit.Loggers.TemperatureWalkerTest produces an out-of-limits reading when an excursion is drawn 0.000s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize recommends only category A when raising the max threshold alone resolves most alerts 9.266s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize recommends only category B when both thresholds must move to resolve most alerts 9.138s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize recommends only category C when the alerts are short excursions unaffected by threshold changes 10.085s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize surfaces both a threshold option and a duration option when both are independently viable 9.081s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize returns an empty list when there is nothing worth changing 9.019s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize surfaces +1Β°C and +2Β°C when the larger step reduces alerts much more 8.536s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize keeps only +1Β°C when +2Β°C barely improves further 8.371s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize keeps only +2Β°C when +1Β°C does not reduce alerts enough 8.555s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize surfaces +10 min and +20 min when the larger step reduces alerts much more 8.202s
βœ… Tests.Unit.Loggers.ThresholdAndDurationOptimizerTest optimize keeps only +10 min when +20 min barely improves further 8.945s
βœ… Tests.Unit.Loggers.TimeClusteringAnalyzerTest findBestWindow finds a <=4h window covering more than 80% of the alerts 8.861s
βœ… Tests.Unit.Loggers.TimeClusteringAnalyzerTest findBestWindow handles a window wrapping past midnight 8.785s
βœ… Tests.Unit.Loggers.TimeClusteringAnalyzerTest findBestWindow returns a low-coverage window when alerts are spread evenly across the day 8.918s
βœ… Tests.Unit.Loggers.TimeClusteringAnalyzerTest findBestWindow returns null when there are too few alerts to be meaningful 9.482s
βœ… Tests.Unit.Loggers.WindowStateReplaySimulatorTest analyzeWindow matches TemperatureWindowAnalyzer::analyze() for the same logs and config 9.279s
βœ… Tests.Unit.Loggers.WindowStateReplaySimulatorTest countIssueEpisodes counts one episode per sustained out-of-limits block 8.303s
βœ… Tests.Unit.Loggers.WindowStateReplaySimulatorTest countIssueEpisodes counts a fresh episode after a full recovery in between 8.402s
βœ… Tests.Unit.Loggers.WindowStateReplaySimulatorTest countIssueEpisodes returns 0 when nothing ever leaves the stable_ok state 8.457s
βœ… Tests.Unit.Mail.MailPitTagsTest adds X-Tags header when mailpit_tags is configured 0.051s
βœ… Tests.Unit.Mail.MailPitTagsTest does nothing when mailpit_tags is empty 0.041s
βœ… Tests.Unit.Mail.MailPitTagsTest does not overwrite an existing X-Tags header 0.040s
βœ… Tests.Unit.Mail.MailSimulatedTimestampTest sets mail date header from carbon test now 0.044s
βœ… Tests.Unit.Mail.MailSimulatedTimestampTest does nothing when carbon test now is not set 0.040s
βœ… Tests.Unit.Mail.MailSimulatedTimestampTest can prefix subject when LOGGER_MAIL_SUBJECT_SIMULATED_TIME is enabled 0.039s
βœ… Tests.Unit.NotationServiceRegressionTest Check percent ne declenche pas d alerte quand total est zero 0.003s
βœ… Tests.Unit.NotationServiceRegressionTest Check module data type number ne declenche pas d alerte quand periode fermee 0.002s
βœ… Tests.Unit.NotationServiceRegressionTest Check module data type number alerte quand restaurant ouvert et total zero 0.000s
βœ… Tests.Unit.NotationServiceRegressionTest Client check module data type number ne declenche pas d alerte quand periode fermee 0.002s
βœ… Tests.Unit.NotationServiceRegressionTest Client check module data type number alerte quand restaurant ouvert et total zero 0.000s
βœ… Tests.Unit.NotationServiceTest Check min records for period returns no alert when restaurant closed all period 0.003s
βœ… Tests.Unit.NotationServiceTest Check percent returns no alert when precomputed percent is dash 0.000s
βœ… Tests.Unit.OnboardingNotificationServiceTest First day uses one hour delay 0.001s
βœ… Tests.Unit.OnboardingNotificationServiceTest Between day one and day three uses two hour delay 0.000s
βœ… Tests.Unit.OnboardingNotificationServiceTest After day three uses six hour delay 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsClosedAllPeriodTest Period closure covers full week range returns true 0.001s
βœ… Tests.Unit.Restaurant.RestaurantIsClosedAllPeriodTest Week all day closure every weekday in range returns true 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsClosedAllPeriodTest Week closure only weekends range has open weekday returns false 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsClosedAllPeriodTest Single date closure on same day returns true 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsClosedAllPeriodTest No closures returns false 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Normal range hour inside restaurant is closed 0.001s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Normal range hour outside restaurant is open 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range hour before midnight should be closed 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range hour after midnight should be closed 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range start boundary should be closed 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range end boundary should be closed 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range hour clearly outside stays open 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range just before start stays open 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Midnight crossing range just after end stays open 0.000s
βœ… Tests.Unit.Restaurant.RestaurantIsOpenAtMidnightClosureTest Closed all day when start equals end stays closed at any hour 0.000s
βœ… Tests.Unit.Routing.ModuleCsrfCoverageTest Every module write route served by session is covered by csrf 0.053s
βœ… Tests.Unit.Routing.ModuleCsrfCoverageTest The module csrf verifier has no exemption 0.043s
βœ… Tests.Unit.Support.MailAddressListTest Flatten keeps plain email strings 0.002s
βœ… Tests.Unit.Support.MailAddressListTest Flatten unwraps nested list appended as a single cc item 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten drops empty nested list that laravel turns into stdclass 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten accepts address key used by laravel normalized recipients 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten drops null and blank values 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten wraps a single recipient string 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten treats associative email map as one recipient 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten extracts email from a list of maps 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten handles json decoded scheduled job cc payload 0.000s
βœ… Tests.Unit.Support.MailAddressListTest Flatten handles json decoded empty nested cc list 0.000s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Backoffice pages are reachable 0.107s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Can update dynamic areas and section fields 0.067s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Rich text validates plain text length not html length 0.059s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Content title validates max string length 0.053s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Home sections title validates max string length 0.054s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Related article title validates max string length on content store 0.061s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Content title validates max string length on content store 0.052s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front renders rich text html unescaped 0.122s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Can search existing tags for backoffice autocomplete 0.052s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Video content draft then publish then toggle from list then delete 0.071s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Document flow with thematics and front visibility 0.079s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front home section and content pages are reachable 0.132s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front content detail displays related articles before similar contents 0.115s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front content detail shows similar contents ordered by shared tags without thematics 0.119s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front content detail fills similar contents with section peers without shared tags 0.117s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front content detail prioritizes same thematic before other similar contents 0.123s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front shows only active and published contents and blocks others 0.129s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front returns 404 for unknown section or unknown content 0.121s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front section without thematics is still reachable without thematic filter bar 0.127s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front section search and thematic filters apply across pagination 0.145s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front section search matches content tags 0.119s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front uses default thumbnail logo when content thumbnail is missing 0.111s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front home does not render sections without slug 0.110s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Youtube url formats are supported on front 0.128s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Front access is forbidden when restaurant has no academy access 0.106s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Courses can be created and are visible on front section when upcoming and published 0.115s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Backoffice courses list orders drafts first then published by ascending date 0.059s
βœ… App.Modules.Academy.Tests.AcademyModuleFeatureTest Courses draft cannot be activated publish and activate endpoint publishes 0.058s
βœ… App.Modules.Academy.Tests.AcademyRichTextTest Plain text length ignores html tags 0.008s
βœ… App.Modules.Academy.Tests.AcademyRichTextTest Plain text length collapses whitespace 0.000s
βœ… App.Modules.Academy.Tests.AcademyRichTextTest Exceeds max plain text length 0.000s
βœ… App.Modules.Academy.Tests.AcademyRichTextTest Html longer than column limit passes when plain text within limit 0.000s
βœ… App.Modules.Alert.Tests.AlertServiceTest Update audit alerts writes client and cascades to contacts 0.003s
βœ… App.Modules.Alert.Tests.AlertServiceTest Update audit alerts can disable 0.000s
βœ… App.Modules.Alert.Tests.EloquentAlertRepositoryTest It never deletes the multisite report contact even when it is not in the kept restaurant ids 8.300s
βœ… App.Modules.Alert.Tests.EloquentAlertRepositoryTest Find or create global contact reuses the existing restaurant id zero contact 8.427s
βœ… App.Modules.Alert.Tests.EloquentAlertRepositoryTest Find or create global contact does not duplicate on repeated calls 8.202s
βœ… App.Modules.Alert.Tests.GetAccessRestaurantsPreloadingTest Preloaded main client restaurants are reused without re querying 0.008s
βœ… App.Modules.Alert.Tests.GetAccessRestaurantsPreloadingTest Preloaded main client restaurants preserve access filtering 0.001s
βœ… App.Modules.Alert.Tests.NcSettingsDisplayDataTest Critical fridges are loaded once for all contacts 0.028s
βœ… App.Modules.Auth.Tests.AuthGuardTest From entity returns admin for admin model 0.041s
βœ… App.Modules.Auth.Tests.AuthGuardTest From entity returns client for client model 0.039s
βœ… App.Modules.Auth.Tests.AuthGuardTest From entity returns web for restaurant model 0.038s
βœ… App.Modules.Auth.Tests.AuthGuardTest From entity returns central for restaurant central model 0.036s
βœ… App.Modules.Auth.Tests.AuthGuardTest From userable type maps all known types 0.037s
βœ… App.Modules.Auth.Tests.AuthGuardTest From userable type throws for unknown type 0.038s
βœ… App.Modules.Auth.Tests.AuthGuardTest From domain returns admin for superpoulpe domain 0.037s
βœ… App.Modules.Auth.Tests.AuthGuardTest From domain returns client for clients domain 0.036s
βœ… App.Modules.Auth.Tests.AuthGuardTest From domain returns web for app domain 0.037s
βœ… App.Modules.Auth.Tests.AuthGuardTest From domain returns null for unknown domain 0.039s
βœ… App.Modules.Auth.Tests.AuthGuardTest From request returns central for app domain with central prefix 0.039s
βœ… App.Modules.Auth.Tests.AuthGuardTest From request returns web for app domain without central prefix 0.040s
βœ… App.Modules.Auth.Tests.AuthGuardTest From request returns null for unknown domain 0.039s
βœ… App.Modules.Auth.Tests.AuthGuardTest Get redirect route name returns expected routes 0.038s
βœ… App.Modules.Auth.Tests.AuthGuardTest Model returns correct model class for each guard 0.037s
βœ… App.Modules.Auth.Tests.AuthGuardTest Get impersonation entry route name returns null for admin 0.037s
βœ… App.Modules.Auth.Tests.AuthGuardTest Get impersonation entry route name returns route for impersonable guards 0.038s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate returns null when no users match login 0.116s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate throws inactive when user is inactive 0.093s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate throws inactive when entity is inactive 0.099s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate throws use credentials disabled when sso only 0.103s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate throws password expired when highly secured and expired 0.095s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate does not throw when highly secured password is valid 0.095s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate does not check expiry when not highly secured 0.095s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate skips expiry check when no client 0.096s
βœ… App.Modules.Auth.Tests.AuthServiceTest Authenticate throws password expired for client entity 0.044s
βœ… App.Modules.Auth.Tests.ConsumeRestaurantTempPasswordActionTest Returns false when no temp password set 0.042s
βœ… App.Modules.Auth.Tests.ConsumeRestaurantTempPasswordActionTest Returns false when password does not match 0.040s
βœ… App.Modules.Auth.Tests.ConsumeRestaurantTempPasswordActionTest Returns false when expired 0.040s
βœ… App.Modules.Auth.Tests.ConsumeRestaurantTempPasswordActionTest Returns false when no expiry set 0.038s
βœ… App.Modules.Auth.Tests.ConsumeRestaurantTempPasswordActionTest Consumes and returns true when valid 0.041s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Consume token returns false when token does not match 0.039s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Consume token returns false when token is expired 0.038s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Consume token returns true and clears token when valid 0.039s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Consume token accepts token exactly at ttl boundary 0.038s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Is impersonating returns false when no session 0.039s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Start impersonation pushes layer to stack 0.037s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Start impersonation supports multi level stack 0.038s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Start impersonation with parent stack uses parent as base 0.036s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Current layer returns null when not impersonating 0.036s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Leave pops top layer and returns return url 0.037s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Leave clears legacy session keys 0.037s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Leave in multi level stack keeps remaining layers 0.037s
βœ… App.Modules.Auth.Tests.ImpersonationServiceTest Leave without stack falls back to app login route 0.038s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Client constraints use client type and own id 0.043s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Client manager constraints use parent id not subclient id 0.038s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Client and restaurant with same numeric id have distinct types 0.038s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Restaurant constraints exclude admin role 0.039s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Central constraints match username as email 0.038s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Constraints for unknown entity throws 0.039s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Execute falls back to app login when no user found 0.041s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Execute logs in resolved user and returns auth redirect 0.041s
βœ… App.Modules.Auth.Tests.LoginAfterPasswordResetActionTest Execute never calls login with a raw entity 0.039s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate throws invalid when login token not found 0.043s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate via password returns restaurant when credentials match 0.040s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate throws invalid when all credential paths fail 0.040s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate via temp password succeeds when not expired 0.044s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate via temp password throws invalid when expired 0.044s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate throws inactive when restaurant is inactive 0.040s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate throws password expired when highly secured and expired 0.039s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate succeeds without client 0.042s
βœ… App.Modules.Auth.Tests.MobileAuthServiceTest Authenticate succeeds with non highly secured client 0.043s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Client not highly secured returns not highly secured 0.043s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Client never changed password returns expired 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Client changed recently returns valid 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Client within 7 days of expiry returns expiring soon 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Client past 180 days returns expired 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant with no client returns not highly secured 0.036s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant client not highly secured returns not highly secured 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant never changed password returns expired 0.038s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant changed recently returns valid 0.040s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant within 7 days of expiry returns expiring soon 0.039s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant past 180 days returns expired 0.040s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant tablet out of sync returns password change required 0.048s
βœ… App.Modules.Auth.Tests.PasswordExpirationServiceTest Restaurant tablet with null last sync skips password change check 0.041s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Generate reset token stores token on user 0.044s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Generate reset token returns 64 char hex string 0.039s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Validate token returns true when token matches and not expired 0.038s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Validate token returns false when token does not match 0.038s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Validate token returns false when token is expired 0.038s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Consume token hashes password and clears token 0.196s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Consume token skips restaurant sync when userable missing 0.147s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Issue reset token always stores on restaurant for authenticate middleware 0.044s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Issue reset token mirrors on admin user when present 0.041s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Validate reset token uses restaurant admin email code 0.038s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Validate reset token rejects expired code 0.037s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Consume reset token updates restaurant when no admin user 0.142s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Consume reset token syncs admin user and restaurant 0.198s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Matches admin email is case insensitive 0.041s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Matches admin email falls back to admin user when admin email empty 0.038s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Verify password accepts restaurant admin password without admin user 0.193s
βœ… App.Modules.Auth.Tests.RestaurantAdminAuthServiceTest Verify password ignores admin user with empty password hash 0.197s
βœ… App.Modules.Auth.Tests.SendPasswordExpiredResetLinkActionTest Sends via users broker for restaurant 0.050s
βœ… App.Modules.Auth.Tests.SendPasswordExpiredResetLinkActionTest Sends via clients broker for client 0.040s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Create conversation throws when no participant is selected 0.043s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Update conversation throws when not found 0.040s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Update conversation throws when wrong restaurant 0.040s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Add message creates message and marks as read 0.046s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Mark conversation as read calls repository 0.040s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Delete conversation calls repository 0.041s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Get unread overview returns total and counts by accessible restaurant 0.040s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Unread count increases for other participant when one sends messages 8.177s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Create conversation with message creates message 0.042s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Bridge client user resolves via manager service 0.041s
βœ… App.Modules.ComInApp.Tests.ComInAppConversationServiceTest Bridge client user sets null when no matching user 0.052s
βœ… App.Modules.ComInApp.Tests.ComInAppServiceTest Add unread message count to employees adds count to employees 0.057s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Search delegates to repository 0.002s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Search passes null term 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Create hashes password and persists all fields 0.001s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Create stores null password when none provided 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Find or fail delegates to repository 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Update passes dto array to repository 0.002s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Update hashes password when present in dto array 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Update does not add password when absent from dto array 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Update propagates repository false 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Delete finds admin then delegates deletion 0.000s
βœ… App.Modules.Users.Admin.Tests.AdminServiceTest Delete propagates repository false 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest All for central delegates to repository 0.003s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync creates user when no id provided 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync skips creation when email is empty 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync with empty array does nothing 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync updates email when id matches 0.001s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync updates password when provided 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync skips when user not found for id 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync deletes user when delete flag set 0.000s
βœ… App.Modules.Users.Central.Tests.CentralManagerServiceTest Sync handles mixed operations 0.001s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest All delegates to repository 0.003s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Find or fail delegates to repository 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Create persists central and creates user 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Create passes null restaurants as empty array 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Update persists data and syncs user email 0.002s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Update strips empty password before passing to repository 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Update does not call user save when no user found 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Update propagates repository false 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Delete finds central then delegates 0.000s
βœ… App.Modules.Users.Central.Tests.CentralServiceTest Delete propagates repository false 0.000s
βœ… App.Modules.Users.Client.Tests.BuildManagerExportRowTest Builds row from bridge client 0.037s
βœ… App.Modules.Users.Client.Tests.BuildManagerExportRowTest Blank names stay empty 0.039s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Find or fail delegates to repository 0.002s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Sync creates new family when no id 0.000s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Sync skips new family when name is empty 0.000s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Sync updates existing family 0.000s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Sync deletes family without restaurants 0.000s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Sync throws when deleting family with restaurants 0.002s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Delete removes family without restaurants 0.000s
βœ… App.Modules.Users.Client.Tests.ClientFamilyServiceTest Delete throws when family has restaurants 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Find or fail delegates to repository 0.003s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Create many persists each non empty name 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Create many skips empty names 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Update delegates to repository with name 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Delete finds then delegates 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Sync existing updates groups without delete flag 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Sync existing deletes groups with delete flag 0.000s
βœ… App.Modules.Users.Client.Tests.ClientGroupServiceTest Sync existing handles mixed operations 0.000s
βœ… App.Modules.Users.Client.Tests.ClientPolicyTest Manage audit alerts allows own manager 0.002s
βœ… App.Modules.Users.Client.Tests.ClientPolicyTest Manage audit alerts allows self 0.000s
βœ… App.Modules.Users.Client.Tests.ClientPolicyTest Manage audit alerts denies another hierarchy 0.000s
βœ… App.Modules.Users.Client.Tests.ClientPolicyTest Manage audit alerts denies managers from another client 0.000s
βœ… App.Modules.Users.Client.Tests.ClientPolicyTest Manage audit alerts denies when current entity is not a client 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest All delegates to repository 0.003s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Find or fail delegates to repository 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Create hashes password and sets is superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Create maps all dto fields 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Update passes dto array to repository 0.002s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Update cascades highly secured password to children 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Update does not cascade when highly secured password absent 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Update cascades use credentials to children 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Update propagates repository false 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Delete finds client and delegates 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Toggle updates only is active 0.000s
βœ… App.Modules.Users.Client.Tests.ClientServiceTest Count restaurants counts all for client 0.000s
βœ… App.Modules.Users.Client.Tests.ExportManagersJobTest Exports managers and notifies with a downloadable file 0.060s
βœ… App.Modules.Users.Client.Tests.ImportManagersJobTest Imports valid rows and reports errors for invalid ones 0.073s
βœ… App.Modules.Users.Client.Tests.ImportManagersJobTest Reports a friendly error when the spreadsheet file cannot be read 0.041s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest View any allows superadmin 0.001s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest View any denies manager role 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest View any denies when no authenticated user 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Create allows superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Create denies manager role 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Edit allows self even when not superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Edit denies when manager belongs to another client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Edit denies manager role editing someone else 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Edit allows superadmin editing another manager in same client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies self 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage allows self when impersonating from superpoulpe and another superadmin exists 0.001s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage still denies self when impersonating from client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies self via superpoulpe impersonation when only one active superadmin left 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies when manager belongs to another client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies manager role as actor 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage allows non superadmin target regardless of superadmin count 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies superadmin target when no active superadmin left 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage denies superadmin target when it is the only active superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Manage allows superadmin target when more than one active superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Restaurants access denies superadmin target 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerPolicyTest Restaurants access allows non superadmin target 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest All for client delegates to repository 0.004s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest All for client passes null term 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Find manager or fail delegates to repository 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Find user sub client delegates to client repository 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Find user for client delegates to repository 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Find first active superadmin delegates to repository 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Create sets parent id hashes password and marks active 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Create maps all optional dto fields 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Create throws duplicate manager exception on integrity violation 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Create rethrows other query exceptions 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update syncs sub client when it exists 0.002s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update writes to main client when no sub client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update strips empty password instead of overwriting it 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update synchronizes user profile when identity fields change 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update does not touch profile when no identity fields change 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update stamps password last changed at on sub client only when password set 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update translates role to is superadmin for sub client only 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update clears restaurants and families access when promoted to superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update does not touch restaurants or families access when staying manager 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update propagates repository false 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Delete deletes sub client and user when sub client exists 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Delete only deletes user when no sub client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Delete propagates repository false 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update restaurant access writes to main client when no sub client 0.001s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Update restaurant access writes to sub client when it exists 0.001s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Get index view data attaches sub client and computed fields 0.001s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Get index view data defaults when no sub client 0.000s
βœ… App.Modules.Users.Client.Tests.ManagerServiceTest Get index view data shows total restaurants for superadmin 0.000s
βœ… App.Modules.Users.Client.Tests.MapImportRowToStoreDTOTest Maps basic fields 0.012s
βœ… App.Modules.Users.Client.Tests.MapImportRowToStoreDTOTest Resolves family names to ids 0.000s
βœ… App.Modules.Users.Client.Tests.MapImportRowToStoreDTOTest Maps oui non to booleans 0.000s
βœ… App.Modules.Users.Client.Tests.PromoteManagerToSuperadminTest Returns data unchanged when role is absent 0.001s
βœ… App.Modules.Users.Client.Tests.PromoteManagerToSuperadminTest Sets is superadmin false when staying manager 0.000s
βœ… App.Modules.Users.Client.Tests.PromoteManagerToSuperadminTest Clears access and enables options when promoted to superadmin 0.000s
βœ… App.Modules.Users.Employee.Tests.EmployeeObserverTest Clearing employee password also clears user password 0.007s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest All delegates to repository with restaurant id 0.004s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest All passes null term 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Find or fail returns employee when found 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Find or fail aborts when not found 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create passes restaurant id and basic fields 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create defaults color when null 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create resolves dlc both 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create resolves dlc only edit dlc 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create defaults action plan edit level to full when null 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create keeps provided action plan edit level 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Create calls sync relations with dto arrays 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Update active only sets flag and saves without full update 0.009s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Update keeps empty password so it can be removed 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Update keeps non empty password 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Update does not call sync when save fails 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Delete delegates to repository 0.001s
βœ… App.Modules.Users.Employee.Tests.LocalEmployeeServiceTest Bulk delete delegates with restaurant id 0.001s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest All delegates to repository with family id 0.016s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest All passes null term 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Find or fail returns employee when found 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Find or fail aborts when not found 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Create passes family id and basic fields 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Create touches family timestamp 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Delete delegates to repository and returns true 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Delete does not touch timestamp when repository fails 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Update throws bad method call exception 0.000s
βœ… App.Modules.Users.Employee.Tests.MultiEmployeeServiceTest Bulk delete throws bad method call exception 0.000s
βœ… App.Modules.Users.Employee.Tests.UpdateDTOTest Password cannot be removed when required by client 0.003s
βœ… App.Modules.Users.Employee.Tests.UpdateDTOTest Password can be removed when not required by client 0.001s
βœ… App.Modules.Users.Employee.Tests.UpdateDTOTest Active only update does not require password 0.001s
βœ… App.Modules.Users.Restaurant.Tests.CreateAccountRestaurantActionTest It passes a hashed password and admin password to the repository 0.256s
βœ… App.Modules.Users.Restaurant.Tests.CreateAccountRestaurantActionTest It maps the other expected fields 0.149s
βœ… App.Modules.Users.Restaurant.Tests.CreateTrialRestaurantActionTest It passes a hashed password and admin password to the repository 0.250s
βœ… App.Modules.Users.Restaurant.Tests.CreateTrialRestaurantActionTest It derives the username from the email local part 0.146s
βœ… App.Modules.Users.Restaurant.Tests.CreateTrialRestaurantActionTest It suffixes the username with the domain on collision 0.146s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Unchecking a provider soft deletes its polymorphic connexion 8.625s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Unchecking a provider soft deletes its legacy connexion 8.770s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Rechecking a provider restores its soft deleted connexion 9.628s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Disabled connexion is excluded from the default sync query 8.445s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Untouched providers are not affected 8.734s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Local restaurant service resets import apis when all boxes are unchecked 9.046s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Ajax is active toggle does not reset import apis on local service 8.537s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Ajax is active toggle does not reset import apis on indep service 8.636s
βœ… App.Modules.Users.Restaurant.Tests.ImportApisApiConnexionSyncTest Inactive restaurant connexion is excluded from the sync query 8.878s