test success 3m 03s
- --- PASS: TestPrepareDownloadUseCase_Deduplication/multiple_existing_files_increment_suffix (0.00s)
- --- PASS: TestPrepareDownloadUseCase_Deduplication/fs.Exists_error_assumes_file_exists_(conservative) (0.00s)
- --- PASS: TestPrepareDownloadUseCase_Deduplication/non-existing_file_uses_original_name (0.00s)
- === RUN TestReadSystemviewConfigUseCase_Current
- --- PASS: TestReadSystemviewConfigUseCase_Current (0.00s)
- === RUN TestReadSystemviewConfigUseCase_Default
- --- PASS: TestReadSystemviewConfigUseCase_Default (0.00s)
- === RUN TestNewReadSystemviewConfigUseCase_NilReaderPanics
- --- PASS: TestNewReadSystemviewConfigUseCase_NilReaderPanics (0.00s)
- === RUN TestReadSystemviewConfigUseCase_NilUseCaseReturnsSentinel
- --- PASS: TestReadSystemviewConfigUseCase_NilUseCaseReturnsSentinel (0.00s)
- === RUN TestReadSystemviewConfigUseCase_CurrentResolvedAppearanceUsesPayloadSnapshot
- --- PASS: TestReadSystemviewConfigUseCase_CurrentResolvedAppearanceUsesPayloadSnapshot (0.00s)
- === RUN TestReadSystemviewConfigUseCase_CurrentResolvedAppearanceKeepsEditableAppearanceUnchanged
- --- PASS: TestReadSystemviewConfigUseCase_CurrentResolvedAppearanceKeepsEditableAppearanceUnchanged (0.00s)
- === RUN TestReadSystemviewConfigUseCase_DefaultDoesNotOverlayResolvedAppearance
- --- PASS: TestReadSystemviewConfigUseCase_DefaultDoesNotOverlayResolvedAppearance (0.00s)
- === RUN TestRelayPaneReuse_PrunesExpiredAndMissingPanes
- --- PASS: TestRelayPaneReuse_PrunesExpiredAndMissingPanes (0.00s)
- === RUN TestResolveTheme_ExternalDisabled_UsesConfigPalettes
- --- PASS: TestResolveTheme_ExternalDisabled_UsesConfigPalettes (0.00s)
- === RUN TestResolveTheme_NoConfig_UsesDefaults
- --- PASS: TestResolveTheme_NoConfig_UsesDefaults (0.00s)
- === RUN TestResolveTheme_ValidExternal_OverridesPaletteColors
- --- PASS: TestResolveTheme_ValidExternal_OverridesPaletteColors (0.00s)
- === RUN TestResolveTheme_ValidExternal_DoesNotOverrideNonPaletteFields
- --- PASS: TestResolveTheme_ValidExternal_DoesNotOverrideNonPaletteFields (0.00s)
- === RUN TestResolveTheme_PartialExternal_MergesOverConfig
- --- PASS: TestResolveTheme_PartialExternal_MergesOverConfig (0.00s)
- === RUN TestResolveTheme_PartialExternal_MergesOverDefaults
- --- PASS: TestResolveTheme_PartialExternal_MergesOverDefaults (0.00s)
- === RUN TestResolveTheme_PartialExternal_RepairsInvalidConfigFallbackFields
- --- PASS: TestResolveTheme_PartialExternal_RepairsInvalidConfigFallbackFields (0.00s)
- === RUN TestResolveTheme_PrefersDark_SelectsDarkPalette
- --- PASS: TestResolveTheme_PrefersDark_SelectsDarkPalette (0.00s)
- === RUN TestResolveTheme_PrefersLight_SelectsLightPalette
- --- PASS: TestResolveTheme_PrefersLight_SelectsLightPalette (0.00s)
- === RUN TestResolveTheme_MalformedExternalAtStartup_FallsBackToConfig
- --- PASS: TestResolveTheme_MalformedExternalAtStartup_FallsBackToConfig (0.00s)
- === RUN TestResolveTheme_MissingExternalAtStartup_FallsBackWithWarning
- --- PASS: TestResolveTheme_MissingExternalAtStartup_FallsBackWithWarning (0.00s)
- === RUN TestResolveTheme_ReadErrorAtStartup_FallsBackWithWarning
- --- PASS: TestResolveTheme_ReadErrorAtStartup_FallsBackWithWarning (0.00s)
- === RUN TestResolveTheme_ReadErrorAfterValid_KeepsLastGoodForSameIdentity
- --- PASS: TestResolveTheme_ReadErrorAfterValid_KeepsLastGoodForSameIdentity (0.00s)
- === RUN TestResolveTheme_ExternalIdentityChangeClearsLastGoodBeforeReadError
- --- PASS: TestResolveTheme_ExternalIdentityChangeClearsLastGoodBeforeReadError (0.00s)
- === RUN TestResolveTheme_MissingExternalAfterValid_KeepsLastGood
- --- PASS: TestResolveTheme_MissingExternalAfterValid_KeepsLastGood (0.00s)
- === RUN TestResolveTheme_MalformedExternalMissingPalette_FallsBack
- --- PASS: TestResolveTheme_MalformedExternalMissingPalette_FallsBack (0.00s)
- === RUN TestResolveTheme_MalformedAfterValid_KeepsLastGood
- --- PASS: TestResolveTheme_MalformedAfterValid_KeepsLastGood (0.00s)
- === RUN TestResolveTheme_DisablingExternalAfterValid_ClearsLastGood
- --- PASS: TestResolveTheme_DisablingExternalAfterValid_ClearsLastGood (0.00s)
- === RUN TestResolveTheme_DisablingExternalTwice_Noop
- --- PASS: TestResolveTheme_DisablingExternalTwice_Noop (0.00s)
- === RUN TestResolveTheme_OutputContainsAllFields
- --- PASS: TestResolveTheme_OutputContainsAllFields (0.00s)
- === RUN TestResolveTheme_AllOutputPalettesAreCSSSafeHex
- --- PASS: TestResolveTheme_AllOutputPalettesAreCSSSafeHex (0.00s)
- === RUN TestResolveTheme_NoConfigFonts_UsesDefaults
- --- PASS: TestResolveTheme_NoConfigFonts_UsesDefaults (0.00s)
- === RUN TestResolveTheme_NoConfigModeColors_UsesDefaults
- --- PASS: TestResolveTheme_NoConfigModeColors_UsesDefaults (0.00s)
- === RUN TestResolveTheme_InvalidModeColors_FallsBackToDefaults
- --- PASS: TestResolveTheme_InvalidModeColors_FallsBackToDefaults (0.00s)
- === RUN TestResolveTheme_UIScaleDefaultsToOne
- === RUN TestResolveTheme_UIScaleDefaultsToOne/zero
- === RUN TestResolveTheme_UIScaleDefaultsToOne/negative
- === RUN TestResolveTheme_UIScaleDefaultsToOne/positive
- --- PASS: TestResolveTheme_UIScaleDefaultsToOne (0.00s)
- --- PASS: TestResolveTheme_UIScaleDefaultsToOne/zero (0.00s)
- --- PASS: TestResolveTheme_UIScaleDefaultsToOne/negative (0.00s)
- --- PASS: TestResolveTheme_UIScaleDefaultsToOne/positive (0.00s)
- === RUN TestResolveTheme_ColorSchemeSourceIsCaptured
- --- PASS: TestResolveTheme_ColorSchemeSourceIsCaptured (0.00s)
- === RUN TestResolveTheme_RefreshDelegatesToExecute
- --- PASS: TestResolveTheme_RefreshDelegatesToExecute (0.00s)
- === RUN TestResolveThemeInputFromConfig_MapsAppearanceStylingAndPreference
- --- PASS: TestResolveThemeInputFromConfig_MapsAppearanceStylingAndPreference (0.00s)
- === RUN TestResolveThemeInputFromConfig_AllowsNilConfig
- --- PASS: TestResolveThemeInputFromConfig_AllowsNilConfig (0.00s)
- === RUN TestResolveThemeInputFromConfigVimColorFallback
- --- PASS: TestResolveThemeInputFromConfigVimColorFallback (0.00s)
- === RUN TestRuntimeResidencyDisabledQuitsOnLastWindow
- --- PASS: TestRuntimeResidencyDisabledQuitsOnLastWindow (0.00s)
- === RUN TestRuntimeResidencyNegativeTimeoutDisables
- --- PASS: TestRuntimeResidencyNegativeTimeoutDisables (0.00s)
- === RUN TestRuntimeResidencyFirstIdleArmsDeadline
- --- PASS: TestRuntimeResidencyFirstIdleArmsDeadline (0.00s)
- === RUN TestRuntimeResidencyReopenCancelsDeadline
- --- PASS: TestRuntimeResidencyReopenCancelsDeadline (0.00s)
- === RUN TestRuntimeResidencyFailedReopenRestoresIdle
- --- PASS: TestRuntimeResidencyFailedReopenRestoresIdle (0.00s)
- === RUN TestRuntimeResidencyPopupRemainingPreventsIdle
- --- PASS: TestRuntimeResidencyPopupRemainingPreventsIdle (0.00s)
- === RUN TestRuntimeResidencyDuplicateCloseIsIdempotent
- --- PASS: TestRuntimeResidencyDuplicateCloseIsIdempotent (0.00s)
- === RUN TestRuntimeResidencyStaleExpiryIgnored
- --- PASS: TestRuntimeResidencyStaleExpiryIgnored (0.00s)
- === RUN TestRuntimeResidencyExplicitQuitNeverWaits
- --- PASS: TestRuntimeResidencyExplicitQuitNeverWaits (0.00s)
- === RUN TestRuntimeResidencyWorkBlocksIdleUntilDrained
- --- PASS: TestRuntimeResidencyWorkBlocksIdleUntilDrained (0.00s)
- === RUN TestRuntimeResidencyWorkCancelsArmedDeadline
- --- PASS: TestRuntimeResidencyWorkCancelsArmedDeadline (0.00s)
- === RUN TestSaveModeLegendCollapsedUseCase_PersistsValue
- --- PASS: TestSaveModeLegendCollapsedUseCase_PersistsValue (0.00s)
- === RUN TestSaveModeLegendCollapsedUseCase_ReturnsSaverError
- --- PASS: TestSaveModeLegendCollapsedUseCase_ReturnsSaverError (0.00s)
- === RUN TestSaveModeLegendCollapsedUseCase_NilSaverReturnsError
- --- PASS: TestSaveModeLegendCollapsedUseCase_NilSaverReturnsError (0.00s)
- === RUN TestSaveOmniboxInitialBehaviorUseCase_AllowsRecent
- --- PASS: TestSaveOmniboxInitialBehaviorUseCase_AllowsRecent (0.00s)
- === RUN TestSaveOmniboxInitialBehaviorUseCase_AllowsTrimmedMostVisited
- --- PASS: TestSaveOmniboxInitialBehaviorUseCase_AllowsTrimmedMostVisited (0.00s)
- === RUN TestSaveOmniboxInitialBehaviorUseCase_RejectsNone
- --- PASS: TestSaveOmniboxInitialBehaviorUseCase_RejectsNone (0.00s)
- === RUN TestSaveOmniboxInitialBehaviorUseCase_RejectsEmptyString
- --- PASS: TestSaveOmniboxInitialBehaviorUseCase_RejectsEmptyString (0.00s)
- === RUN TestSaveOmniboxInitialBehaviorUseCase_NilSaverReturnsError
- --- PASS: TestSaveOmniboxInitialBehaviorUseCase_NilSaverReturnsError (0.00s)
- === RUN TestFilterBangs
- === RUN TestFilterBangs/bang_only_returns_all_sorted
- === RUN TestFilterBangs/filters_by_prefix
- === RUN TestFilterBangs/filters_by_prefix_case-insensitive
- === RUN TestFilterBangs/stops_prefix_at_space
- === RUN TestFilterBangs/falls_back_to_url_when_description_empty
- --- PASS: TestFilterBangs (0.00s)
- --- PASS: TestFilterBangs/bang_only_returns_all_sorted (0.00s)
- --- PASS: TestFilterBangs/filters_by_prefix (0.00s)
- --- PASS: TestFilterBangs/filters_by_prefix_case-insensitive (0.00s)
- --- PASS: TestFilterBangs/stops_prefix_at_space (0.00s)
- --- PASS: TestFilterBangs/falls_back_to_url_when_description_empty (0.00s)
- === RUN TestDetectBangKey
- === RUN TestDetectBangKey/no_bang_prefix
- === RUN TestDetectBangKey/bang_only_has_no_space
- === RUN TestDetectBangKey/space_at_position_1
- === RUN TestDetectBangKey/unknown_bang
- === RUN TestDetectBangKey/case-insensitive_match
- === RUN TestDetectBangKey/valid_bang_key
- === RUN TestDetectBangKey/description_fallback_to_URL
- --- PASS: TestDetectBangKey (0.00s)
- --- PASS: TestDetectBangKey/no_bang_prefix (0.00s)
- --- PASS: TestDetectBangKey/bang_only_has_no_space (0.00s)
- --- PASS: TestDetectBangKey/space_at_position_1 (0.00s)
- --- PASS: TestDetectBangKey/unknown_bang (0.00s)
- --- PASS: TestDetectBangKey/case-insensitive_match (0.00s)
- --- PASS: TestDetectBangKey/valid_bang_key (0.00s)
- --- PASS: TestDetectBangKey/description_fallback_to_URL (0.00s)
- === RUN TestBuildNavigationText
- === RUN TestBuildNavigationText/not_a_bang_shortcut
- === RUN TestBuildNavigationText/bang_key_without_query
- === RUN TestBuildNavigationText/unknown_bang_key
- === RUN TestBuildNavigationText/normalizes_key_case
- === RUN TestBuildNavigationText/keeps_query_unchanged
- --- PASS: TestBuildNavigationText (0.00s)
- --- PASS: TestBuildNavigationText/not_a_bang_shortcut (0.00s)
- --- PASS: TestBuildNavigationText/bang_key_without_query (0.00s)
- --- PASS: TestBuildNavigationText/unknown_bang_key (0.00s)
- --- PASS: TestBuildNavigationText/normalizes_key_case (0.00s)
- --- PASS: TestBuildNavigationText/keeps_query_unchanged (0.00s)
- === RUN TestGetShortcut
- === RUN TestGetShortcut/exact_match
- === RUN TestGetShortcut/case_insensitive
- === RUN TestGetShortcut/not_found
- --- PASS: TestGetShortcut (0.00s)
- --- PASS: TestGetShortcut/exact_match (0.00s)
- --- PASS: TestGetShortcut/case_insensitive (0.00s)
- --- PASS: TestGetShortcut/not_found (0.00s)
- === RUN TestTransformLegacyConfigUseCase_Execute
- --- PASS: TestTransformLegacyConfigUseCase_Execute (0.00s)
- === RUN TestTransformLegacyConfigUseCase_Execute_CallsTransformer
- --- PASS: TestTransformLegacyConfigUseCase_Execute_CallsTransformer (0.00s)
- === RUN TestVimModePolicyEvaluate
- === RUN TestVimModePolicyEvaluate/activation_stays_allowed_while_page_editable_focused
- === RUN TestVimModePolicyEvaluate/activation_stays_allowed_when_page_is_not_editable
- === RUN TestVimModePolicyEvaluate/active_page_editable_focus_exits_vim_mode
- === RUN TestVimModePolicyEvaluate/background_page_editable_focus_does_not_exit_vim_mode
- === RUN TestVimModePolicyEvaluate/overlay_focus_exits_vim_mode
- === RUN TestVimModePolicyEvaluate/omnibox_focus_exits_vim_mode
- === RUN TestVimModePolicyEvaluate/find_bar_focus_exits_vim_mode
- === RUN TestVimModePolicyEvaluate/context_change_preserves_vim_mode_when_scoped_context_stays_valid
- === RUN TestVimModePolicyEvaluate/context_change_exits_vim_mode_when_scoped_context_is_lost
- === RUN TestVimModePolicyEvaluate/non_vim_mode_focus_change_stays_normal
- --- PASS: TestVimModePolicyEvaluate (0.00s)
- --- PASS: TestVimModePolicyEvaluate/activation_stays_allowed_while_page_editable_focused (0.00s)
- --- PASS: TestVimModePolicyEvaluate/activation_stays_allowed_when_page_is_not_editable (0.00s)
- --- PASS: TestVimModePolicyEvaluate/active_page_editable_focus_exits_vim_mode (0.00s)
- --- PASS: TestVimModePolicyEvaluate/background_page_editable_focus_does_not_exit_vim_mode (0.00s)
- --- PASS: TestVimModePolicyEvaluate/overlay_focus_exits_vim_mode (0.00s)
- --- PASS: TestVimModePolicyEvaluate/omnibox_focus_exits_vim_mode (0.00s)
- --- PASS: TestVimModePolicyEvaluate/find_bar_focus_exits_vim_mode (0.00s)
- --- PASS: TestVimModePolicyEvaluate/context_change_preserves_vim_mode_when_scoped_context_stays_valid (0.00s)
- --- PASS: TestVimModePolicyEvaluate/context_change_exits_vim_mode_when_scoped_context_is_lost (0.00s)
- --- PASS: TestVimModePolicyEvaluate/non_vim_mode_focus_change_stays_normal (0.00s)
- === RUN TestVimNavigationUseCaseExecuteDispatchesConfiguredActions
- --- PASS: TestVimNavigationUseCaseExecuteDispatchesConfiguredActions (0.00s)
- === RUN TestVimNavigationUseCaseClearSemanticNavigationHighlight
- --- PASS: TestVimNavigationUseCaseClearSemanticNavigationHighlight (0.00s)
- === RUN TestVimNavigationUseCaseNavigatePageFocus
- --- PASS: TestVimNavigationUseCaseNavigatePageFocus (0.00s)
- === RUN TestVimNavigationUseCaseIgnoresUnsupportedCapability
- --- PASS: TestVimNavigationUseCaseIgnoresUnsupportedCapability (0.00s)
- === RUN TestVimNavigationUseCaseStartsPageInteractions
- === RUN TestVimNavigationUseCaseStartsPageInteractions/hint-follow
- === RUN TestVimNavigationUseCaseStartsPageInteractions/hint-follow-new
- === RUN TestVimNavigationUseCaseStartsPageInteractions/hint-yank-url
- === RUN TestVimNavigationUseCaseStartsPageInteractions/visual
- === RUN TestVimNavigationUseCaseStartsPageInteractions/yank-section
- === RUN TestVimNavigationUseCaseStartsPageInteractions/yank-paragraph
- === RUN TestVimNavigationUseCaseStartsPageInteractions/yank-code
- === RUN TestVimNavigationUseCaseStartsPageInteractions/yank-table
- === RUN TestVimNavigationUseCaseStartsPageInteractions/yank-list
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/hint-follow (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/hint-follow-new (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/hint-yank-url (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/visual (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/yank-section (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/yank-paragraph (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/yank-code (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/yank-table (0.00s)
- --- PASS: TestVimNavigationUseCaseStartsPageInteractions/yank-list (0.00s)
- === RUN TestVimNavigationUseCasePageInteractionErrorDoesNotCapture
- --- PASS: TestVimNavigationUseCasePageInteractionErrorDoesNotCapture (0.00s)
- === RUN TestVimNavigationUseCasePageInteractionUnsupportedEngine
- --- PASS: TestVimNavigationUseCasePageInteractionUnsupportedEngine (0.00s)
- === RUN TestVimNavigationUseCaseForwardsPageKeysAndCancel
- --- PASS: TestVimNavigationUseCaseForwardsPageKeysAndCancel (0.00s)
- === RUN TestVimNavigationUseCaseWrapsPageKeyAndCancelErrors
- --- PASS: TestVimNavigationUseCaseWrapsPageKeyAndCancelErrors (0.00s)
- === RUN TestCleanupSessionsUseCase_ReconcileActiveBrowserSessions_EndsOnlyProvenDeadSessions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mended dead browser session<U+001B>[0m <U+001B>[36mpid=<U+001B>[0m222 <U+001B>[36msession_id=<U+001B>[0mdead
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG skipping active session without process id <U+001B>[36msession_id=<U+001B>[0munknown
- --- PASS: TestCleanupSessionsUseCase_ReconcileActiveBrowserSessions_EndsOnlyProvenDeadSessions (0.00s)
- === RUN TestCleanupSessionsUseCase_ReconcileActiveBrowserSessions_SkipsWhenProbeErrors
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mfailed to probe session process<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"probe failed"<U+001B>[0m<U+001B>[0m <U+001B>[36mpid=<U+001B>[0m333 <U+001B>[36msession_id=<U+001B>[0mactive
- --- PASS: TestCleanupSessionsUseCase_ReconcileActiveBrowserSessions_SkipsWhenProbeErrors (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_AgeAndCountCleanup
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by age<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m3 <U+001B>[36mmax_age_days=<U+001B>[0m7
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by count<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m2 <U+001B>[36mmax_count=<U+001B>[0m50
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m3 <U+001B>[36mby_count=<U+001B>[0m2 <U+001B>[36mtotal_deleted=<U+001B>[0m5
- --- PASS: TestCleanupSessionsUseCase_Execute_AgeAndCountCleanup (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_AgeOnlyCleanup
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by age<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m5 <U+001B>[36mmax_age_days=<U+001B>[0m30
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m5 <U+001B>[36mby_count=<U+001B>[0m0 <U+001B>[36mtotal_deleted=<U+001B>[0m5
- --- PASS: TestCleanupSessionsUseCase_Execute_AgeOnlyCleanup (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_CountOnlyCleanup
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by count<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m4 <U+001B>[36mmax_count=<U+001B>[0m10
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m0 <U+001B>[36mby_count=<U+001B>[0m4 <U+001B>[36mtotal_deleted=<U+001B>[0m4
- --- PASS: TestCleanupSessionsUseCase_Execute_CountOnlyCleanup (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_NoCleanupNeeded
- --- PASS: TestCleanupSessionsUseCase_Execute_NoCleanupNeeded (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_AgeDeleteError_ContinuesToCount
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mfailed to delete sessions by age<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"db error"<U+001B>[0m<U+001B>[0m
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by count<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m3 <U+001B>[36mmax_count=<U+001B>[0m50
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m0 <U+001B>[36mby_count=<U+001B>[0m3 <U+001B>[36mtotal_deleted=<U+001B>[0m3
- --- PASS: TestCleanupSessionsUseCase_Execute_AgeDeleteError_ContinuesToCount (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_CountDeleteError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by age<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m2 <U+001B>[36mmax_age_days=<U+001B>[0m7
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mfailed to delete sessions by count<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"db error"<U+001B>[0m<U+001B>[0m
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m2 <U+001B>[36mby_count=<U+001B>[0m0 <U+001B>[36mtotal_deleted=<U+001B>[0m2
- --- PASS: TestCleanupSessionsUseCase_Execute_CountDeleteError (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_BothDisabled
- --- PASS: TestCleanupSessionsUseCase_Execute_BothDisabled (0.00s)
- === RUN TestCleanupSessionsUseCase_Execute_ZeroMaxSessions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mcleaned up old sessions by count<U+001B>[0m <U+001B>[36mdeleted=<U+001B>[0m10 <U+001B>[36mmax_count=<U+001B>[0m0
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession cleanup completed<U+001B>[0m <U+001B>[36mby_age=<U+001B>[0m0 <U+001B>[36mby_count=<U+001B>[0m10 <U+001B>[36mtotal_deleted=<U+001B>[0m10
- --- PASS: TestCleanupSessionsUseCase_Execute_ZeroMaxSessions (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_Success
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mdeleting session<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_delete
- --- PASS: TestDeleteSessionUseCase_Execute_Success (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_CannotDeleteCurrentSession
- --- PASS: TestDeleteSessionUseCase_Execute_CannotDeleteCurrentSession (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_SessionNotFound
- --- PASS: TestDeleteSessionUseCase_Execute_SessionNotFound (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_CannotDeleteActiveSession
- --- PASS: TestDeleteSessionUseCase_Execute_CannotDeleteActiveSession (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_FindByIDError
- --- PASS: TestDeleteSessionUseCase_Execute_FindByIDError (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_DeleteSnapshotErrorIgnored
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mdeleting session<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_nosnapshot
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG failed to delete session snapshot (may not exist) <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"no rows"<U+001B>[0m<U+001B>[0m
- --- PASS: TestDeleteSessionUseCase_Execute_DeleteSnapshotErrorIgnored (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_DeleteSessionError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mdeleting session<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_deleteerror
- --- PASS: TestDeleteSessionUseCase_Execute_DeleteSessionError (0.00s)
- === RUN TestDeleteSessionUseCase_Execute_EmptyCurrentSessionAllowed
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mdeleting session<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_nocurrent
- --- PASS: TestDeleteSessionUseCase_Execute_EmptyCurrentSessionAllowed (0.00s)
- === RUN TestGetConfigSchemaUseCase_Execute
- === RUN TestGetConfigSchemaUseCase_Execute/returns_schema_keys_from_provider
- === RUN TestGetConfigSchemaUseCase_Execute/returns_empty_slice_when_no_keys
- === RUN TestGetConfigSchemaUseCase_Execute/keys_include_all_expected_fields
- --- PASS: TestGetConfigSchemaUseCase_Execute (0.00s)
- --- PASS: TestGetConfigSchemaUseCase_Execute/returns_schema_keys_from_provider (0.00s)
- --- PASS: TestGetConfigSchemaUseCase_Execute/returns_empty_slice_when_no_keys (0.00s)
- --- PASS: TestGetConfigSchemaUseCase_Execute/keys_include_all_expected_fields (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_NoSessions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_NoSessions (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_OnlyCurrentSession
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_OnlyCurrentSession (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_SkipsCLISessions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_SkipsCLISessions (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_SkipsActiveSessions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: skipping active session <U+001B>[36msession_id=<U+001B>[0m20251225_120000_actv
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_SkipsActiveSessions (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_SkipsNoSnapshot
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_SkipsNoSnapshot (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_SkipsEmptyTabs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: skipping session with no tabs <U+001B>[36msession_id=<U+001B>[0m20251225_120000_emty
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-restore: no restorable session found
- --- PASS: TestGetLastRestorableSessionUseCase_SkipsEmptyTabs (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_ReturnsEndedSession
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mauto-restore: found restorable session<U+001B>[0m <U+001B>[36mpanes=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251225_120000_good <U+001B>[36mtabs=<U+001B>[0m1
- --- PASS: TestGetLastRestorableSessionUseCase_ReturnsEndedSession (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_ReturnsCrashedSession
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mauto-restore: found restorable session<U+001B>[0m <U+001B>[36mpanes=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251225_120000_crsh <U+001B>[36mtabs=<U+001B>[0m1
- --- PASS: TestGetLastRestorableSessionUseCase_ReturnsCrashedSession (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_ReturnsMostRecent
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mauto-restore: found restorable session<U+001B>[0m <U+001B>[36mpanes=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251225_140000_new1 <U+001B>[36mtabs=<U+001B>[0m1
- --- PASS: TestGetLastRestorableSessionUseCase_ReturnsMostRecent (0.00s)
- === RUN TestGetLastRestorableSessionUseCase_SkipsFirstIfNoSnapshot
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mauto-restore: found restorable session<U+001B>[0m <U+001B>[36mpanes=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251225_120000_good <U+001B>[36mtabs=<U+001B>[0m1
- --- PASS: TestGetLastRestorableSessionUseCase_SkipsFirstIfNoSnapshot (0.00s)
- === RUN TestHandlePermissionUseCase_AutoAllowDisplayCapture
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-allowing permission request <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["display"]
- --- PASS: TestHandlePermissionUseCase_AutoAllowDisplayCapture (0.01s)
- === RUN TestHandlePermissionUseCase_AutoAllowDeviceInfo
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-allowing permission request <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://example.com <U+001B>[36mtypes=<U+001B>[0m["device_info"]
- --- PASS: TestHandlePermissionUseCase_AutoAllowDeviceInfo (0.00s)
- === RUN TestHandlePermissionUseCase_StoredPermissionGranted
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG using stored permission: granted <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["microphone"]
- --- PASS: TestHandlePermissionUseCase_StoredPermissionGranted (0.00s)
- === RUN TestHandlePermissionUseCase_StoredPermissionDenied
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG using stored permission: denied <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["camera"]
- --- PASS: TestHandlePermissionUseCase_StoredPermissionDenied (0.00s)
- === RUN TestHandlePermissionUseCase_ShowDialogForPrompt
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mfalse
- --- PASS: TestHandlePermissionUseCase_ShowDialogForPrompt (0.00s)
- === RUN TestHandlePermissionUseCase_PersistAllowed
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mtrue
- --- PASS: TestHandlePermissionUseCase_PersistAllowed (0.00s)
- === RUN TestHandlePermissionUseCase_PersistDenied
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user denied permission
- --- PASS: TestHandlePermissionUseCase_PersistDenied (0.00s)
- === RUN TestHandlePermissionUseCase_EmptyOrigin
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mpermission request with empty origin, denying<U+001B>[0m <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0m <U+001B>[36mtypes=<U+001B>[0m["microphone"]
- --- PASS: TestHandlePermissionUseCase_EmptyOrigin (0.00s)
- === RUN TestHandlePermissionUseCase_CombinedPermissions
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG using stored permission: denied <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["microphone","camera"]
- --- PASS: TestHandlePermissionUseCase_CombinedPermissions (0.00s)
- === RUN TestHandlePermissionUseCase_QueryPermissionState_AutoAllow
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG query: no stored permission for auto-allow type, returning granted <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://example.com <U+001B>[36mtype=<U+001B>[0mdisplay
- --- PASS: TestHandlePermissionUseCase_QueryPermissionState_AutoAllow (0.00s)
- === RUN TestHandlePermissionUseCase_QueryPermissionState_AutoAllowManualOverride
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG query: returning stored permission <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36mdecision=<U+001B>[0mdenied <U+001B>[36morigin=<U+001B>[0mhttps://example.com <U+001B>[36mtype=<U+001B>[0mdisplay
- --- PASS: TestHandlePermissionUseCase_QueryPermissionState_AutoAllowManualOverride (0.00s)
- === RUN TestHandlePermissionUseCase_QueryPermissionState_Stored
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG query: returning stored permission <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36mdecision=<U+001B>[0mdenied <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtype=<U+001B>[0mmicrophone
- --- PASS: TestHandlePermissionUseCase_QueryPermissionState_Stored (0.00s)
- === RUN TestHandlePermissionUseCase_QueryPermissionState_NoRecord
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG query: no stored permission, returning prompt <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtype=<U+001B>[0mcamera
- --- PASS: TestHandlePermissionUseCase_QueryPermissionState_NoRecord (0.00s)
- === RUN TestHandlePermissionUseCase_QueryPermissionState_EmptyOriginReturnsPrompt
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mquery: empty origin, returning prompt<U+001B>[0m <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0m <U+001B>[36mtype=<U+001B>[0mdisplay
- --- PASS: TestHandlePermissionUseCase_QueryPermissionState_EmptyOriginReturnsPrompt (0.00s)
- === RUN TestHandlePermissionUseCase_NonPersistableNotSaved
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-allowing permission request <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["display"]
- --- PASS: TestHandlePermissionUseCase_NonPersistableNotSaved (0.00s)
- === RUN TestHandlePermissionUseCase_NoDialogPresenter
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mno dialog presenter available, denying permission<U+001B>[0m <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com
- --- PASS: TestHandlePermissionUseCase_NoDialogPresenter (0.00s)
- === RUN TestHandlePermissionUseCase_DisplayOverrideDenied
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG manual override denied auto-allow permission request <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["display"]
- --- PASS: TestHandlePermissionUseCase_DisplayOverrideDenied (0.00s)
- === RUN TestHandlePermissionUseCase_GetSetResetManualDecision
- --- PASS: TestHandlePermissionUseCase_GetSetResetManualDecision (0.00s)
- === RUN TestHandlePermissionUseCase_SetManualPermissionDecision_NonPersistable
- --- PASS: TestHandlePermissionUseCase_SetManualPermissionDecision_NonPersistable (0.00s)
- === RUN TestHandlePermissionUseCase_UsesInjectedLoggerFactory
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mpermission request with empty origin, denying<U+001B>[0m <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0m <U+001B>[36mtypes=<U+001B>[0m["microphone"]
- --- PASS: TestHandlePermissionUseCase_UsesInjectedLoggerFactory (0.00s)
- === RUN TestHandlePermissionUseCase_WebsiteDataAccess_ShowsDialogAndPersists
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mwebsite data access permission allowed<U+001B>[0m <U+001B>[36mcurrent_domain=<U+001B>[0m[redacted-url] <U+001B>[36mpersistent=<U+001B>[0mtrue <U+001B>[36mrequesting_domain=<U+001B>[0m[redacted-url]
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mtrue
- --- PASS: TestHandlePermissionUseCase_WebsiteDataAccess_ShowsDialogAndPersists (0.00s)
- === RUN TestHandlePermissionUseCase_WebsiteDataAccess_UsesStoredGrant
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1musing stored website data access permission: granted<U+001B>[0m <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36mcurrent_domain=<U+001B>[0m[redacted-url] <U+001B>[36morigin=<U+001B>[0mhttps://shop.example.com <U+001B>[36mrequesting_domain=<U+001B>[0m[redacted-url] <U+001B>[36mtypes=<U+001B>[0m["website_data_access"]
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG using stored permission: granted <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://shop.example.com <U+001B>[36mtypes=<U+001B>[0m["website_data_access"]
- --- PASS: TestHandlePermissionUseCase_WebsiteDataAccess_UsesStoredGrant (0.00s)
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/allow
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mfalse
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/always_allow_is_never_persisted
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mtrue
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/deny
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user denied permission
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/always_deny_is_never_persisted
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user denied permission
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog (0.00s)
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/allow (0.00s)
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/always_allow_is_never_persisted (0.00s)
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/deny (0.00s)
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayShowsDialog/always_deny_is_never_persisted (0.00s)
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayIgnoresStoredDecision
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user denied permission
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayIgnoresStoredDecision (0.00s)
- === RUN TestHandlePermissionUseCase_UnmediatedDisplayWithMicrophoneDoesNotPersistDisplay
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG user allowed permission <U+001B>[36mpersistent=<U+001B>[0mtrue
- --- PASS: TestHandlePermissionUseCase_UnmediatedDisplayWithMicrophoneDoesNotPersistDisplay (0.00s)
- === RUN TestHandlePermissionUseCase_DisplayWithoutFlagStillAutoAllowed
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG auto-allowing permission request <U+001B>[36mcomponent=<U+001B>[0mpermission <U+001B>[36morigin=<U+001B>[0mhttps://meet.example.com <U+001B>[36mtypes=<U+001B>[0m["display"]
- --- PASS: TestHandlePermissionUseCase_DisplayWithoutFlagStillAutoAllowed (0.00s)
- === RUN TestGetKeybindingsUseCase_Execute
- === RUN TestGetKeybindingsUseCase_Execute/returns_keybindings_from_provider
- === RUN TestGetKeybindingsUseCase_Execute/returns_error_when_provider_fails
- === RUN TestGetKeybindingsUseCase_Execute/returns_error_when_provider_is_nil
- --- PASS: TestGetKeybindingsUseCase_Execute (0.00s)
- --- PASS: TestGetKeybindingsUseCase_Execute/returns_keybindings_from_provider (0.00s)
- --- PASS: TestGetKeybindingsUseCase_Execute/returns_error_when_provider_fails (0.00s)
- --- PASS: TestGetKeybindingsUseCase_Execute/returns_error_when_provider_is_nil (0.00s)
- === RUN TestSetKeybindingUseCase_Execute
- === RUN TestSetKeybindingUseCase_Execute/accepts_vim_mode
- === RUN TestSetKeybindingUseCase_Execute/successfully_sets_keybinding
- === RUN TestSetKeybindingUseCase_Execute/returns_conflicts_when_detected
- === RUN TestSetKeybindingUseCase_Execute/returns_error_when_saver_fails
- === RUN TestSetKeybindingUseCase_Execute/returns_error_when_saver_is_nil
- === RUN TestSetKeybindingUseCase_Execute/returns_error_when_mode_is_empty
- === RUN TestSetKeybindingUseCase_Execute/returns_error_when_action_is_empty
- === RUN TestSetKeybindingUseCase_Execute/returns_error_for_invalid_mode
- --- PASS: TestSetKeybindingUseCase_Execute (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/accepts_vim_mode (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/successfully_sets_keybinding (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_conflicts_when_detected (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_error_when_saver_fails (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_error_when_saver_is_nil (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_error_when_mode_is_empty (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_error_when_action_is_empty (0.00s)
- --- PASS: TestSetKeybindingUseCase_Execute/returns_error_for_invalid_mode (0.00s)
- === RUN TestResetKeybindingUseCase_Execute
- === RUN TestResetKeybindingUseCase_Execute/successfully_resets_keybinding
- === RUN TestResetKeybindingUseCase_Execute/returns_error_when_saver_fails
- === RUN TestResetKeybindingUseCase_Execute/returns_error_when_saver_is_nil
- === RUN TestResetKeybindingUseCase_Execute/returns_error_when_mode_is_empty
- --- PASS: TestResetKeybindingUseCase_Execute (0.00s)
- --- PASS: TestResetKeybindingUseCase_Execute/successfully_resets_keybinding (0.00s)
- --- PASS: TestResetKeybindingUseCase_Execute/returns_error_when_saver_fails (0.00s)
- --- PASS: TestResetKeybindingUseCase_Execute/returns_error_when_saver_is_nil (0.00s)
- --- PASS: TestResetKeybindingUseCase_Execute/returns_error_when_mode_is_empty (0.00s)
- === RUN TestResetAllKeybindingsUseCase_Execute
- === RUN TestResetAllKeybindingsUseCase_Execute/successfully_resets_all_keybindings
- === RUN TestResetAllKeybindingsUseCase_Execute/returns_error_when_saver_fails
- === RUN TestResetAllKeybindingsUseCase_Execute/returns_error_when_saver_is_nil
- --- PASS: TestResetAllKeybindingsUseCase_Execute (0.00s)
- --- PASS: TestResetAllKeybindingsUseCase_Execute/successfully_resets_all_keybindings (0.00s)
- --- PASS: TestResetAllKeybindingsUseCase_Execute/returns_error_when_saver_fails (0.00s)
- --- PASS: TestResetAllKeybindingsUseCase_Execute/returns_error_when_saver_is_nil (0.00s)
- === RUN TestListSessionsUseCase_Execute_ReturnsSessionsWithState
- --- PASS: TestListSessionsUseCase_Execute_ReturnsSessionsWithState (0.00s)
- === RUN TestListSessionsUseCase_GetPurgeableSessions_ReturnsOnlyInactive
- --- PASS: TestListSessionsUseCase_GetPurgeableSessions_ReturnsOnlyInactive (0.00s)
- === RUN TestListSessionsUseCase_GetPurgeableSessions_EmptyWhenAllActive
- --- PASS: TestListSessionsUseCase_GetPurgeableSessions_EmptyWhenAllActive (0.00s)
- === RUN TestListSessionsUseCase_GetPurgeableSessions_HandlesGetSizeError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mfailed to get total snapshots size<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"assert.AnError general error for testing"<U+001B>[0m<U+001B>[0m
- --- PASS: TestListSessionsUseCase_GetPurgeableSessions_HandlesGetSizeError (0.00s)
- === RUN TestManageFavoritesUseCase_GetAllURLs_ReturnsURLSet
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m3
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorite URLs <U+001B>[36mcount=<U+001B>[0m3
- --- PASS: TestManageFavoritesUseCase_GetAllURLs_ReturnsURLSet (0.00s)
- === RUN TestManageFavoritesUseCase_GetAllURLs_ReturnsEmptySetWhenNoFavorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m0
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorite URLs <U+001B>[36mcount=<U+001B>[0m0
- --- PASS: TestManageFavoritesUseCase_GetAllURLs_ReturnsEmptySetWhenNoFavorites (0.00s)
- === RUN TestManageFavoritesUseCase_GetAllURLs_ReturnsErrorOnRepoFailure
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- --- PASS: TestManageFavoritesUseCase_GetAllURLs_ReturnsErrorOnRepoFailure (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_AddsWhenNotFavorite
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added via toggle<U+001B>[0m <U+001B>[36mid=<U+001B>[0m0 <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_Toggle_AddsWhenNotFavorite (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_RemovesWhenAlreadyFavorite
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite removed via toggle<U+001B>[0m <U+001B>[36mid=<U+001B>[0m42 <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_Toggle_RemovesWhenAlreadyFavorite (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_EmptyURLReturnsError
- --- PASS: TestManageFavoritesUseCase_Toggle_EmptyURLReturnsError (0.00s)
- === RUN TestManageFavoritesUseCase_ToggleNormalizesURLBeforeLookup
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added via toggle<U+001B>[0m <U+001B>[36mid=<U+001B>[0m0 <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_ToggleNormalizesURLBeforeLookup (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_FindByURLErrorReturnsError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_Toggle_FindByURLErrorReturnsError (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_SaveErrorReturnsError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_Toggle_SaveErrorReturnsError (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_DeleteErrorReturnsError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_Toggle_DeleteErrorReturnsError (0.00s)
- === RUN TestManageFavoritesUseCase_UpdateFavoritePreservesShortcutWhenOmitted
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG updating favorite <U+001B>[36mid=<U+001B>[0m42
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite updated<U+001B>[0m <U+001B>[36mid=<U+001B>[0m42
- --- PASS: TestManageFavoritesUseCase_UpdateFavoritePreservesShortcutWhenOmitted (0.00s)
- === RUN TestManageFavoritesUseCase_UpdateFavoriteClearsShortcutWhenExplicit
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG updating favorite <U+001B>[36mid=<U+001B>[0m42
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite updated<U+001B>[0m <U+001B>[36mid=<U+001B>[0m42
- --- PASS: TestManageFavoritesUseCase_UpdateFavoriteClearsShortcutWhenExplicit (0.00s)
- === RUN TestManageFavoritesUseCase_FilterForOmnibox_RanksPrefixBeforeContains
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m3
- --- PASS: TestManageFavoritesUseCase_FilterForOmnibox_RanksPrefixBeforeContains (0.00s)
- === RUN TestManageFavoritesUseCase_FilterForOmnibox_EmptyQueryKeepsRepositoryOrder
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m2
- --- PASS: TestManageFavoritesUseCase_FilterForOmnibox_EmptyQueryKeepsRepositoryOrder (0.00s)
- === RUN TestManageFavoritesUseCase_GetAllURLs_UsesCache
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m1
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorite URLs <U+001B>[36mcount=<U+001B>[0m1
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- --- PASS: TestManageFavoritesUseCase_GetAllURLs_UsesCache (0.00s)
- === RUN TestManageFavoritesUseCase_Toggle_InvalidatesCache
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m1
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorite URLs <U+001B>[36mcount=<U+001B>[0m1
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG toggling favorite <U+001B>[36murl=<U+001B>[0mnew.example
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added via toggle<U+001B>[0m <U+001B>[36mid=<U+001B>[0m0 <U+001B>[36murl=<U+001B>[0mnew.example
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorite URLs
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting all favorites
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorites <U+001B>[36mcount=<U+001B>[0m2
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG retrieved favorite URLs <U+001B>[36mcount=<U+001B>[0m2
- --- PASS: TestManageFavoritesUseCase_Toggle_InvalidatesCache (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteNormalizesURL
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added<U+001B>[0m <U+001B>[36mid=<U+001B>[0m0 <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_AddFavoriteNormalizesURL (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsInvalidTagIDs
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsInvalidTagIDs (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteAssignsTagsWithoutFolder
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added<U+001B>[0m <U+001B>[36mid=<U+001B>[0m42 <U+001B>[36murl=<U+001B>[0mexample.com
- --- PASS: TestManageFavoritesUseCase_AddFavoriteAssignsTagsWithoutFolder (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteReturnsAssignTagError
- --- PASS: TestManageFavoritesUseCase_AddFavoriteReturnsAssignTagError (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/#00
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/not_a_url
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/javascript:alert(1)
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/data:text/html,<script>alert(1)</script>
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/https:///missing-host
- === RUN TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/dumb:///missing-host
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/#00 (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/not_a_url (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/javascript:alert(1) (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/data:text/html,<script>alert(1)</script> (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/https:///missing-host (0.00s)
- --- PASS: TestManageFavoritesUseCase_AddFavoriteRejectsUnsafeOrMalformedURL/dumb:///missing-host (0.00s)
- === RUN TestManageFavoritesUseCase_AddFavoriteNormalizesOpaqueDumbRoute
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mfavorite added<U+001B>[0m <U+001B>[36mid=<U+001B>[0m0 <U+001B>[36murl=<U+001B>[0mhistory
- --- PASS: TestManageFavoritesUseCase_AddFavoriteNormalizesOpaqueDumbRoute (0.00s)
- === RUN TestManageSessionUseCase_StartSession_SavesAndReturnsLogger
- <U+001B>[90m<nil><U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession started<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20261022_113524_502d <U+001B>[36mtype=<U+001B>[0mbrowser
- --- PASS: TestManageSessionUseCase_StartSession_SavesAndReturnsLogger (0.00s)
- === RUN TestManageSessionUseCase_StartSession_WhenSaveFails_CleansUp
- --- PASS: TestManageSessionUseCase_StartSession_WhenSaveFails_CleansUp (0.00s)
- === RUN TestRestoreSessionUseCase_Execute_ReturnsState
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrestoring session state<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_restore
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1msession state loaded for restoration<U+001B>[0m <U+001B>[36mpane_count=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251224_120000_restore <U+001B>[36mtab_count=<U+001B>[0m1
- --- PASS: TestRestoreSessionUseCase_Execute_ReturnsState (0.00s)
- === RUN TestRestoreSessionUseCase_Execute_RequiresSessionID
- --- PASS: TestRestoreSessionUseCase_Execute_RequiresSessionID (0.00s)
- === RUN TestRestoreSessionUseCase_Execute_SessionNotFound
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrestoring session state<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_notfound
- --- PASS: TestRestoreSessionUseCase_Execute_SessionNotFound (0.00s)
- === RUN TestRestoreSessionUseCase_Execute_VersionMismatch
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrestoring session state<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_version
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1msession state version is newer than current version<U+001B>[0m <U+001B>[36mcurrent_version=<U+001B>[0m2 <U+001B>[36mstate_version=<U+001B>[0m3
- --- PASS: TestRestoreSessionUseCase_Execute_VersionMismatch (0.00s)
- === RUN TestRestoreSessionUseCase_Execute_GetSnapshotError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrestoring session state<U+001B>[0m <U+001B>[36msession_id=<U+001B>[0m20251224_120000_error
- --- PASS: TestRestoreSessionUseCase_Execute_GetSnapshotError (0.00s)
- === RUN TestRestoreSessionUseCase_DeleteSnapshot
- --- PASS: TestRestoreSessionUseCase_DeleteSnapshot (0.00s)
- === RUN TestSaveWebUIConfigUseCase_Validation
- === RUN TestSaveWebUIConfigUseCase_Validation/rejects_invalid_default_search_URL
- === RUN TestSaveWebUIConfigUseCase_Validation/rejects_invalid_performance_profile
- === RUN TestSaveWebUIConfigUseCase_Validation/rejects_NaN_UI_scale
- === RUN TestSaveWebUIConfigUseCase_Validation/rejects_infinite_UI_scale
- --- PASS: TestSaveWebUIConfigUseCase_Validation (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_Validation/rejects_invalid_default_search_URL (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_Validation/rejects_invalid_performance_profile (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_Validation/rejects_NaN_UI_scale (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_Validation/rejects_infinite_UI_scale (0.00s)
- === RUN TestSaveWebUIConfigUseCase_RejectsDuplicateTrimmedSearchShortcutKeys
- --- PASS: TestSaveWebUIConfigUseCase_RejectsDuplicateTrimmedSearchShortcutKeys (0.00s)
- === RUN TestSaveWebUIConfigUseCase_NormalizesAndSavesValidConfig
- --- PASS: TestSaveWebUIConfigUseCase_NormalizesAndSavesValidConfig (0.00s)
- === RUN TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile
- === RUN TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile/custom_is_clamped
- === RUN TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile/other_profiles_are_untouched
- --- PASS: TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile/custom_is_clamped (0.00s)
- --- PASS: TestSaveWebUIConfigUseCase_ClampsCustomPerformanceOnlyForCustomProfile/other_profiles_are_untouched (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecent_ZeroLimitMeansAll
- --- PASS: TestSearchHistoryUseCase_GetRecent_ZeroLimitMeansAll (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecent_NegativeLimitDefaultsToPageSize
- --- PASS: TestSearchHistoryUseCase_GetRecent_NegativeLimitDefaultsToPageSize (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecent_ClampsOversizedLimit
- --- PASS: TestSearchHistoryUseCase_GetRecent_ClampsOversizedLimit (0.00s)
- === RUN TestSearchHistoryUseCase_Search_ClampsOversizedLimit
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG FTS5 search completed <U+001B>[36mmatches=<U+001B>[0m0 <U+001B>[36mquery=<U+001B>[0mdumber
- --- PASS: TestSearchHistoryUseCase_Search_ClampsOversizedLimit (0.00s)
- === RUN TestSearchHistoryUseCase_Search_AppliesOptionalAgeScope
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG FTS5 search completed <U+001B>[36mmatches=<U+001B>[0m0 <U+001B>[36mquery=<U+001B>[0mdumber
- --- PASS: TestSearchHistoryUseCase_Search_AppliesOptionalAgeScope (0.00s)
- === RUN TestSearchHistoryUseCase_Search_ZeroMaxAgeMeansAllHistory
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG FTS5 search completed <U+001B>[36mmatches=<U+001B>[0m0 <U+001B>[36mquery=<U+001B>[0mdumber
- --- PASS: TestSearchHistoryUseCase_Search_ZeroMaxAgeMeansAllHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWithin_AppliesScopeAndLimit
- --- PASS: TestSearchHistoryUseCase_GetRecentWithin_AppliesScopeAndLimit (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWithin_ZeroMeansAllHistory
- --- PASS: TestSearchHistoryUseCase_GetRecentWithin_ZeroMeansAllHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisitedWithin_AppliesScopeAndLimit
- --- PASS: TestSearchHistoryUseCase_GetMostVisitedWithin_AppliesScopeAndLimit (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisitedWithin_ZeroMeansAllHistory
- --- PASS: TestSearchHistoryUseCase_GetMostVisitedWithin_ZeroMeansAllHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWindow_InvalidDomainReturnsValidationError
- --- PASS: TestSearchHistoryUseCase_GetRecentWindow_InvalidDomainReturnsValidationError (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWindow_RejectsInvalidCursorPairs
- --- PASS: TestSearchHistoryUseCase_GetRecentWindow_RejectsInvalidCursorPairs (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWindow_UsesLimitPlusOneForHasMoreAndCursor
- --- PASS: TestSearchHistoryUseCase_GetRecentWindow_UsesLimitPlusOneForHasMoreAndCursor (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentSince_ReturnsEntries
- --- PASS: TestSearchHistoryUseCase_GetRecentSince_ReturnsEntries (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentSince_ZeroMeansAll
- --- PASS: TestSearchHistoryUseCase_GetRecentSince_ZeroMeansAll (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentSince_NegativeDaysDefaultsTo30
- --- PASS: TestSearchHistoryUseCase_GetRecentSince_NegativeDaysDefaultsTo30 (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentSince_ReturnsErrorOnRepoFailure
- --- PASS: TestSearchHistoryUseCase_GetRecentSince_ReturnsErrorOnRepoFailure (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisited_ReturnsEntries
- --- PASS: TestSearchHistoryUseCase_GetMostVisited_ReturnsEntries (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisited_ZeroMeansAll
- --- PASS: TestSearchHistoryUseCase_GetMostVisited_ZeroMeansAll (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisited_ReturnsErrorOnRepoFailure
- --- PASS: TestSearchHistoryUseCase_GetMostVisited_ReturnsErrorOnRepoFailure (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisited_ReturnsEmptyWhenNoHistory
- --- PASS: TestSearchHistoryUseCase_GetMostVisited_ReturnsEmptyWhenNoHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetDomainStats_ClampsOversizedLimit
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG getting domain stats <U+001B>[36mlimit=<U+001B>[0m10000
- --- PASS: TestSearchHistoryUseCase_GetDomainStats_ClampsOversizedLimit (0.00s)
- === RUN TestSearchHistoryUseCase_Delete_PublishesDeleteChangeAfterSuccess
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history entry <U+001B>[36mid=<U+001B>[0m42
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG history entry deleted <U+001B>[36mid=<U+001B>[0m42
- --- PASS: TestSearchHistoryUseCase_Delete_PublishesDeleteChangeAfterSuccess (0.00s)
- === RUN TestSearchHistoryUseCase_Delete_DoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history entry <U+001B>[36mid=<U+001B>[0m42
- --- PASS: TestSearchHistoryUseCase_Delete_DoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_DeleteByDomain_PublishesDeleteChangeAfterSuccess
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mhistory deleted for domain<U+001B>[0m <U+001B>[36mdomain=<U+001B>[0mexample.com
- --- PASS: TestSearchHistoryUseCase_DeleteByDomain_PublishesDeleteChangeAfterSuccess (0.00s)
- === RUN TestSearchHistoryUseCase_DeleteByDomain_DoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample.com
- --- PASS: TestSearchHistoryUseCase_DeleteByDomain_DoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_SetHistoryMutationCoordinator_TypedNilClearsCoordinator
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mall history cleared<U+001B>[0m
- --- PASS: TestSearchHistoryUseCase_SetHistoryMutationCoordinator_TypedNilClearsCoordinator (0.00s)
- === RUN TestSearchHistoryUseCase_ClearAll_PublishesClearChangeAfterSuccess
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mall history cleared<U+001B>[0m
- --- PASS: TestSearchHistoryUseCase_ClearAll_PublishesClearChangeAfterSuccess (0.00s)
- === RUN TestSearchHistoryUseCase_ClearAll_CoordinatesPendingRecorderWritesBeforeDelete
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mall history cleared<U+001B>[0m
- --- PASS: TestSearchHistoryUseCase_ClearAll_CoordinatesPendingRecorderWritesBeforeDelete (0.00s)
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/delete
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history entry <U+001B>[36mid=<U+001B>[0m42
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG history entry deleted <U+001B>[36mid=<U+001B>[0m42
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/delete_by_domain
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mhistory deleted for domain<U+001B>[0m <U+001B>[36mdomain=<U+001B>[0mexample.com
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/clear_older_than
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing old history <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mold history cleared<U+001B>[0m <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/clear_range
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrecent history range cleared<U+001B>[0m <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/delete (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/delete_by_domain (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/clear_older_than (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsCoordinateBeforeDeleteAndPublish/clear_range (0.00s)
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/delete
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history entry <U+001B>[36mid=<U+001B>[0m42
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/delete_by_domain
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample.com
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_older_than
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing old history <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_range
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- === RUN TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_all
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError (0.00s)
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/delete (0.00s)
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/delete_by_domain (0.00s)
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_older_than (0.00s)
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_range (0.00s)
- --- PASS: TestSearchHistoryUseCase_DestructiveMutationsReleaseCoordinatorOnRepositoryError/clear_all (0.00s)
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/delete
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history entry <U+001B>[36mid=<U+001B>[0m42
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/delete_by_domain
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample.com
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/clear_older_than
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing old history <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- === RUN TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/clear_range
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/delete (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/delete_by_domain (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/clear_older_than (0.00s)
- --- PASS: TestSearchHistoryUseCase_OtherDestructiveMutationsReturnCoordinatorErrorBeforeDeleting/clear_range (0.00s)
- === RUN TestSearchHistoryUseCase_ClearAll_ReturnsCoordinatorErrorBeforeDeleting
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- --- PASS: TestSearchHistoryUseCase_ClearAll_ReturnsCoordinatorErrorBeforeDeleting (0.00s)
- === RUN TestSearchHistoryUseCase_ClearAll_DoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- --- PASS: TestSearchHistoryUseCase_ClearAll_DoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_ClearOlderThan_PublishesClearChangeAfterSuccess
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing old history <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mold history cleared<U+001B>[0m <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- --- PASS: TestSearchHistoryUseCase_ClearOlderThan_PublishesClearChangeAfterSuccess (0.00s)
- === RUN TestSearchHistoryUseCase_ClearOlderThan_DoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing old history <U+001B>[36mbefore=<U+001B>[0m2026-10-15T11:35:24Z
- --- PASS: TestSearchHistoryUseCase_ClearOlderThan_DoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_RecentRangeDeletesSinceCutoffAndPublishesClearChange
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrecent history range cleared<U+001B>[0m <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- --- PASS: TestSearchHistoryUseCase_ClearRange_RecentRangeDeletesSinceCutoffAndPublishesClearChange (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_RecentRangeDoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mhour <U+001B>[36msince=<U+001B>[0m2026-10-22T10:35:24Z
- --- PASS: TestSearchHistoryUseCase_ClearRange_RecentRangeDoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_TodayDeletesSinceLocalMidnight
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing recent history range <U+001B>[36mrange=<U+001B>[0mday <U+001B>[36msince=<U+001B>[0m2026-10-22T00:00:00Z
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mrecent history range cleared<U+001B>[0m <U+001B>[36mrange=<U+001B>[0mday <U+001B>[36msince=<U+001B>[0m2026-10-22T00:00:00Z
- --- PASS: TestSearchHistoryUseCase_ClearRange_TodayDeletesSinceLocalMidnight (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_AllUsesClearAllAndPublishesOnce
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mall history cleared<U+001B>[0m
- --- PASS: TestSearchHistoryUseCase_ClearRange_AllUsesClearAllAndPublishesOnce (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_AllDoesNotPublishOnRepositoryError
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG clearing all history
- --- PASS: TestSearchHistoryUseCase_ClearRange_AllDoesNotPublishOnRepositoryError (0.00s)
- === RUN TestSearchHistoryUseCase_ClearRange_UnknownRangeDoesNotDeleteOrPublish
- --- PASS: TestSearchHistoryUseCase_ClearRange_UnknownRangeDoesNotDeleteOrPublish (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentByDomainAllowsUnderscoreDomains
- --- PASS: TestSearchHistoryUseCase_GetRecentByDomainAllowsUnderscoreDomains (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentByDomain_ClampsOversizedLimit
- --- PASS: TestSearchHistoryUseCase_GetRecentByDomain_ClampsOversizedLimit (0.00s)
- === RUN TestSearchHistoryUseCase_DeleteByDomainAllowsUnderscoreDomains
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG deleting history by domain <U+001B>[36mdomain=<U+001B>[0mexample_.com
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mhistory deleted for domain<U+001B>[0m <U+001B>[36mdomain=<U+001B>[0mexample_.com
- --- PASS: TestSearchHistoryUseCase_DeleteByDomainAllowsUnderscoreDomains (0.00s)
- === RUN TestSearchHistoryUseCase_Search_NegativeMaxAgeMeansAllHistory
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG FTS5 search completed <U+001B>[36mmatches=<U+001B>[0m0 <U+001B>[36mquery=<U+001B>[0mdumber
- --- PASS: TestSearchHistoryUseCase_Search_NegativeMaxAgeMeansAllHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWithin_NegativeMaxAgeMeansAllHistory
- --- PASS: TestSearchHistoryUseCase_GetRecentWithin_NegativeMaxAgeMeansAllHistory (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWithin_NonPositiveLimitReturnsEmpty
- --- PASS: TestSearchHistoryUseCase_GetRecentWithin_NonPositiveLimitReturnsEmpty (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisitedWithin_NonPositiveLimitReturnsEmpty
- --- PASS: TestSearchHistoryUseCase_GetMostVisitedWithin_NonPositiveLimitReturnsEmpty (0.00s)
- === RUN TestSearchHistoryUseCase_GetRecentWithin_ClampsOversizedLimit
- --- PASS: TestSearchHistoryUseCase_GetRecentWithin_ClampsOversizedLimit (0.00s)
- === RUN TestSearchHistoryUseCase_GetMostVisitedWithin_ClampsOversizedLimit
- --- PASS: TestSearchHistoryUseCase_GetMostVisitedWithin_ClampsOversizedLimit (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_SavesSnapshot
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG creating session snapshot <U+001B>[36mpane_count=<U+001B>[0m1 <U+001B>[36msession_id=<U+001B>[0m20251224_120000_test <U+001B>[36mtab_count=<U+001B>[0m1
- --- PASS: TestSnapshotSessionUseCase_Execute_SavesSnapshot (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_EmptyTabList
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG creating session snapshot <U+001B>[36mpane_count=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251224_120000_empty <U+001B>[36mtab_count=<U+001B>[0m0
- --- PASS: TestSnapshotSessionUseCase_Execute_EmptyTabList (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_RequiresSessionID
- --- PASS: TestSnapshotSessionUseCase_Execute_RequiresSessionID (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_RejectsAmbiguousWindowAndTabListInput
- --- PASS: TestSnapshotSessionUseCase_Execute_RejectsAmbiguousWindowAndTabListInput (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_SavesEmptyWindowSnapshot
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG creating window-scoped session snapshot <U+001B>[36mactive_window=<U+001B>[0m0 <U+001B>[36mpane_count=<U+001B>[0m0 <U+001B>[36msession_id=<U+001B>[0m20251224_120000_empty_v2_windows <U+001B>[36mwindow_count=<U+001B>[0m0
- --- PASS: TestSnapshotSessionUseCase_Execute_SavesEmptyWindowSnapshot (0.00s)
- === RUN TestSnapshotFromTabList_CreatesCorrectSnapshot
- --- PASS: TestSnapshotFromTabList_CreatesCorrectSnapshot (0.00s)
- === RUN TestSnapshotSessionUseCase_Execute_SavesWindowSnapshots
- <U+001B>[90m2026-10-22T11:35:24Z<U+001B>[0m DBG creating window-scoped session snapshot <U+001B>[36mactive_window=<U+001B>[0m0 <U+001B>[36mpane_count=<U+001B>[0m2 <U+001B>[36msession_id=<U+001B>[0m20251224_120000_v2_windows <U+001B>[36mwindow_count=<U+001B>[0m2
- --- PASS: TestSnapshotSessionUseCase_Execute_SavesWindowSnapshots (0.00s)
- === RUN TestSessionState_CountPanes
- --- PASS: TestSessionState_CountPanes (0.00s)
- === RUN TestGetRelativeTime
- === RUN TestGetRelativeTime/just_now
- === RUN TestGetRelativeTime/1_minute
- === RUN TestGetRelativeTime/5_minutes
- === RUN TestGetRelativeTime/1_hour
- === RUN TestGetRelativeTime/3_hours
- === RUN TestGetRelativeTime/1_day
- === RUN TestGetRelativeTime/2_days
- === RUN TestGetRelativeTime/1_week
- === RUN TestGetRelativeTime/2_weeks
- --- PASS: TestGetRelativeTime (0.00s)
- --- PASS: TestGetRelativeTime/just_now (0.00s)
- --- PASS: TestGetRelativeTime/1_minute (0.00s)
- --- PASS: TestGetRelativeTime/5_minutes (0.00s)
- --- PASS: TestGetRelativeTime/1_hour (0.00s)
- --- PASS: TestGetRelativeTime/3_hours (0.00s)
- --- PASS: TestGetRelativeTime/1_day (0.00s)
- --- PASS: TestGetRelativeTime/2_days (0.00s)
- --- PASS: TestGetRelativeTime/1_week (0.00s)
- --- PASS: TestGetRelativeTime/2_weeks (0.00s)
- === CONT TestPopupFeaturesRequestHost
- === RUN TestPopupFeaturesRequestHost/known_featureless
- === CONT TestBrowsingContextPolicyDecide
- === RUN TestBrowsingContextPolicyDecide/workspace_behavior_remains_pane_hosted
- === PAUSE TestBrowsingContextPolicyDecide/workspace_behavior_remains_pane_hosted
- === RUN TestBrowsingContextPolicyDecide/zero_source_preserves_workspace_behavior
- === PAUSE TestBrowsingContextPolicyDecide/zero_source_preserves_workspace_behavior
- === RUN TestBrowsingContextPolicyDecide/floating_blank_target_navigates_source
- === PAUSE TestBrowsingContextPolicyDecide/floating_blank_target_navigates_source
- === RUN TestBrowsingContextPolicyDecide/floating_featureless_script_navigates_source
- === PAUSE TestBrowsingContextPolicyDecide/floating_featureless_script_navigates_source
- === RUN TestBrowsingContextPolicyDecide/floating_featured_script_opens_native_popup
- === PAUSE TestBrowsingContextPolicyDecide/floating_featured_script_opens_native_popup
- === RUN TestBrowsingContextPolicyDecide/floating_unknown_script_waits
- === PAUSE TestBrowsingContextPolicyDecide/floating_unknown_script_waits
- === RUN TestBrowsingContextPolicyDecide/floating_named_unknown_waits
- === PAUSE TestBrowsingContextPolicyDecide/floating_named_unknown_waits
- === RUN TestBrowsingContextPolicyDecide/auth_intent_precedes_floating
- === PAUSE TestBrowsingContextPolicyDecide/auth_intent_precedes_floating
- === RUN TestBrowsingContextPolicyDecide/native_opener_precedes_floating
- === PAUSE TestBrowsingContextPolicyDecide/native_opener_precedes_floating
- === RUN TestBrowsingContextPolicyDecide/ambiguous_workspace_opener_stays_native
- === PAUSE TestBrowsingContextPolicyDecide/ambiguous_workspace_opener_stays_native
- === RUN TestBrowsingContextPolicyDecide/floating_live_named_context_is_reused
- === PAUSE TestBrowsingContextPolicyDecide/floating_live_named_context_is_reused
- === RUN TestBrowsingContextPolicyDecide/floating_noopener_skips_named_reuse
- === PAUSE TestBrowsingContextPolicyDecide/floating_noopener_skips_named_reuse
- === RUN TestBrowsingContextPolicyDecide/empty_target_is_denied_first
- === PAUSE TestBrowsingContextPolicyDecide/empty_target_is_denied_first
- === CONT TestBrowsingContextPolicyDecide/workspace_behavior_remains_pane_hosted
- === CONT TestBrowsingContextPolicyDecide/empty_target_is_denied_first
- === CONT TestBrowsingContextPolicyDecide/floating_noopener_skips_named_reuse
- === CONT TestBrowsingContextPolicyDecide/floating_live_named_context_is_reused
- === CONT TestBrowsingContextPolicyDecide/ambiguous_workspace_opener_stays_native
- === CONT TestBrowsingContextPolicyDecide/native_opener_precedes_floating
- === CONT TestBrowsingContextPolicyDecide/auth_intent_precedes_floating
- === CONT TestBrowsingContextPolicyDecide/floating_named_unknown_waits
- === CONT TestBrowsingContextPolicyDecide/floating_unknown_script_waits
- === CONT TestBrowsingContextPolicyDecide/floating_featured_script_opens_native_popup
- === CONT TestBrowsingContextPolicyDecide/floating_featureless_script_navigates_source
- === CONT TestBrowsingContextPolicyDecide/floating_blank_target_navigates_source
- === CONT TestBrowsingContextPolicyDecide/zero_source_preserves_workspace_behavior
- --- PASS: TestBrowsingContextPolicyDecide (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/workspace_behavior_remains_pane_hosted (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/empty_target_is_denied_first (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_noopener_skips_named_reuse (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_live_named_context_is_reused (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/ambiguous_workspace_opener_stays_native (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/native_opener_precedes_floating (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/auth_intent_precedes_floating (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_named_unknown_waits (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_unknown_script_waits (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_featured_script_opens_native_popup (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_featureless_script_navigates_source (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/floating_blank_target_navigates_source (0.00s)
- --- PASS: TestBrowsingContextPolicyDecide/zero_source_preserves_workspace_behavior (0.00s)
- === PAUSE TestPopupFeaturesRequestHost/known_featureless
- === RUN TestPopupFeaturesRequestHost/zero_width
- === PAUSE TestPopupFeaturesRequestHost/zero_width
- === RUN TestPopupFeaturesRequestHost/positive_width
- === PAUSE TestPopupFeaturesRequestHost/positive_width
- === RUN TestPopupFeaturesRequestHost/positive_height
- === PAUSE TestPopupFeaturesRequestHost/positive_height
- === RUN TestPopupFeaturesRequestHost/hidden_toolbar
- === PAUSE TestPopupFeaturesRequestHost/hidden_toolbar
- === RUN TestPopupFeaturesRequestHost/hidden_location_bar
- === PAUSE TestPopupFeaturesRequestHost/hidden_location_bar
- === RUN TestPopupFeaturesRequestHost/disabled_resize
- === PAUSE TestPopupFeaturesRequestHost/disabled_resize
- === RUN TestPopupFeaturesRequestHost/engine_popup_flag
- === PAUSE TestPopupFeaturesRequestHost/engine_popup_flag
- === RUN TestPopupFeaturesRequestHost/visible_chrome
- === PAUSE TestPopupFeaturesRequestHost/visible_chrome
- === RUN TestPopupFeaturesRequestHost/resizable
- === PAUSE TestPopupFeaturesRequestHost/resizable
- === CONT TestPopupFeaturesRequestHost/known_featureless
- === CONT TestPopupFeaturesRequestHost/hidden_location_bar
- === CONT TestPopupFeaturesRequestHost/disabled_resize
- === CONT TestPopupFeaturesRequestHost/engine_popup_flag
- === CONT TestPopupFeaturesRequestHost/positive_height
- === CONT TestPopupFeaturesRequestHost/hidden_toolbar
- === CONT TestPopupFeaturesRequestHost/positive_width
- === CONT TestPopupFeaturesRequestHost/zero_width
- === CONT TestPopupFeaturesRequestHost/resizable
- === CONT TestPopupFeaturesRequestHost/visible_chrome
- --- PASS: TestPopupFeaturesRequestHost (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/known_featureless (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/hidden_location_bar (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/engine_popup_flag (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/positive_height (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/hidden_toolbar (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/positive_width (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/zero_width (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/resizable (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/visible_chrome (0.00s)
- --- PASS: TestPopupFeaturesRequestHost/disabled_resize (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/application/usecase 2.865s
- === RUN TestRedactSensitiveContent
- === RUN TestRedactSensitiveContent/url_query_params
- === RUN TestRedactSensitiveContent/json_secret_fields
- === RUN TestRedactSensitiveContent/key_value_params
- === RUN TestRedactSensitiveContent/authorization_headers
- --- PASS: TestRedactSensitiveContent (0.00s)
- --- PASS: TestRedactSensitiveContent/url_query_params (0.00s)
- --- PASS: TestRedactSensitiveContent/json_secret_fields (0.00s)
- --- PASS: TestRedactSensitiveContent/key_value_params (0.00s)
- --- PASS: TestRedactSensitiveContent/authorization_headers (0.00s)
- === RUN TestReadRedactedLogTail_RingBuffer
- === RUN TestReadRedactedLogTail_RingBuffer/fewer_lines_than_requested
- === RUN TestReadRedactedLogTail_RingBuffer/exact_tail
- --- PASS: TestReadRedactedLogTail_RingBuffer (0.00s)
- --- PASS: TestReadRedactedLogTail_RingBuffer/fewer_lines_than_requested (0.00s)
- --- PASS: TestReadRedactedLogTail_RingBuffer/exact_tail (0.00s)
- === RUN TestWriteCrashReport
- --- PASS: TestWriteCrashReport (0.00s)
- === RUN TestRunDeferredInit_CEFExecutesNoWebKitDiagnostics
- --- PASS: TestRunDeferredInit_CEFExecutesNoWebKitDiagnostics (0.00s)
- === RUN TestCheckFunctions_RemainAvailableForExplicitCommands
- --- PASS: TestCheckFunctions_RemainAvailableForExplicitCommands (0.13s)
- === RUN TestApplyDevelopmentEnvironment_DevIsolatesHomeAndXDGDirectories
- --- PASS: TestApplyDevelopmentEnvironment_DevIsolatesHomeAndXDGDirectories (0.00s)
- === RUN TestApplyDevelopmentEnvironment_DevTightensExistingDevDirectoryPermissions
- --- PASS: TestApplyDevelopmentEnvironment_DevTightensExistingDevDirectoryPermissions (0.00s)
- === RUN TestApplyDevelopmentEnvironment_DevRejectsSandboxSymlink
- --- PASS: TestApplyDevelopmentEnvironment_DevRejectsSandboxSymlink (0.00s)
- === RUN TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks
- === RUN TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks/logs
- === RUN TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks/engines
- --- PASS: TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks (0.00s)
- --- PASS: TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks/logs (0.00s)
- --- PASS: TestApplyDevelopmentEnvironment_DevRejectsSandboxChildSymlinks/engines (0.00s)
- === RUN TestApplyDevelopmentEnvironment_DevTightensExistingSandboxPermissions
- --- PASS: TestApplyDevelopmentEnvironment_DevTightensExistingSandboxPermissions (0.00s)
- === RUN TestApplyDevelopmentEnvironment_ProductionPreservesEnvironment
- --- PASS: TestApplyDevelopmentEnvironment_ProductionPreservesEnvironment (0.00s)
- === RUN TestBuildEngine_UnknownType
- --- PASS: TestBuildEngine_UnknownType (0.00s)
- === RUN TestBuildEngine_CEF_ReturnsErrorWhenRuntimeUnavailable
- --- PASS: TestBuildEngine_CEF_ReturnsErrorWhenRuntimeUnavailable (0.00s)
- === RUN TestBuildEngine_CEF_ReturnsErrorForUnsupportedCookiePolicy
- --- PASS: TestBuildEngine_CEF_ReturnsErrorForUnsupportedCookiePolicy (0.00s)
- === RUN TestBuildEngine_CEF_AllowsNoThirdPartyCookiePolicy
- --- PASS: TestBuildEngine_CEF_AllowsNoThirdPartyCookiePolicy (0.00s)
- === RUN TestBuildEngine_ReceivesResolvedProfile
- --- PASS: TestBuildEngine_ReceivesResolvedProfile (0.00s)
- === RUN TestRunWithInstanceRelayFailsBeforeEngineStartup
- --- PASS: TestRunWithInstanceRelayFailsBeforeEngineStartup (0.00s)
- === RUN TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent
- === RUN TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/default_external
- === RUN TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/named_instance
- === RUN TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/fresh_window
- === RUN TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/fresh_window_without_instance
- --- PASS: TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent (0.00s)
- --- PASS: TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/default_external (0.00s)
- --- PASS: TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/named_instance (0.00s)
- --- PASS: TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/fresh_window (0.00s)
- --- PASS: TestDeliverOrRunWithInstanceRelayPreservesLaunchIntent/fresh_window_without_instance (0.00s)
- === RUN TestDeliverOrRunWithInstanceRelayRetriesWhileHostStarts
- --- PASS: TestDeliverOrRunWithInstanceRelayRetriesWhileHostStarts (0.30s)
- === RUN TestDeliverOrRunWithInstanceRelayStartsHostForColdDefaultProfile
- --- PASS: TestDeliverOrRunWithInstanceRelayStartsHostForColdDefaultProfile (0.00s)
- === RUN TestDeliverOrRunWithInstanceRelayReturnsPermanentAcquireError
- --- PASS: TestDeliverOrRunWithInstanceRelayReturnsPermanentAcquireError (0.00s)
- === RUN TestRunWithInstanceRelayOwnsLeaseThroughGUILifetime
- --- PASS: TestRunWithInstanceRelayOwnsLeaseThroughGUILifetime (0.05s)
- === RUN TestShouldPreloadLayerShell_WaylandWithoutPreloadReturnsTrue
- --- PASS: TestShouldPreloadLayerShell_WaylandWithoutPreloadReturnsTrue (0.00s)
- === RUN TestFindLayerShellLibrary_UsesLDLibraryPathCandidates
- --- PASS: TestFindLayerShellLibrary_UsesLDLibraryPathCandidates (0.00s)
- === RUN TestShouldPreloadLayerShell_AlreadyPreloadedReturnsFalse
- --- PASS: TestShouldPreloadLayerShell_AlreadyPreloadedReturnsFalse (0.00s)
- === RUN TestShouldPreloadLayerShell_NoWaylandReturnsFalse
- --- PASS: TestShouldPreloadLayerShell_NoWaylandReturnsFalse (0.00s)
- === RUN TestLayerShellPreloadPresent_DetectsLoadedLibrarySubstring
- --- PASS: TestLayerShellPreloadPresent_DetectsLoadedLibrarySubstring (0.00s)
- === RUN TestFindLayerShellLibrary_ReturnsFirstExistingCandidate
- --- PASS: TestFindLayerShellLibrary_ReturnsFirstExistingCandidate (0.00s)
- === RUN TestFindLayerShellLibrary_ReturnsArm64Candidate
- --- PASS: TestFindLayerShellLibrary_ReturnsArm64Candidate (0.00s)
- === RUN TestFindLayerShellLibrary_NoMatchReturnsEmpty
- --- PASS: TestFindLayerShellLibrary_NoMatchReturnsEmpty (0.00s)
- === RUN TestLayerShellLibrarySearchPaths_IncludesLDLibraryPathCandidates
- --- PASS: TestLayerShellLibrarySearchPaths_IncludesLDLibraryPathCandidates (0.00s)
- === RUN TestLayerShellPreloadEnv_SetsLDPreloadWhenEmpty
- --- PASS: TestLayerShellPreloadEnv_SetsLDPreloadWhenEmpty (0.00s)
- === RUN TestLayerShellPreloadEnv_PrependsLibraryToExistingLDPreload
- --- PASS: TestLayerShellPreloadEnv_PrependsLibraryToExistingLDPreload (0.00s)
- === RUN TestEngineSettingsPayloadFromConfigMapsRuntimeFields
- --- PASS: TestEngineSettingsPayloadFromConfigMapsRuntimeFields (0.00s)
- === RUN TestRuntimeConfigProviderUpdatesSnapshotBeforeCallback
- --- PASS: TestRuntimeConfigProviderUpdatesSnapshotBeforeCallback (0.00s)
- === RUN TestRuntimeConfigProviderCurrentReflectsManagerGetWithoutSubscription
- --- PASS: TestRuntimeConfigProviderCurrentReflectsManagerGetWithoutSubscription (0.00s)
- === RUN TestRuntimeConfigProviderCurrentFallsBackWhenManagerGetReturnsNil
- --- PASS: TestRuntimeConfigProviderCurrentFallsBackWhenManagerGetReturnsNil (0.00s)
- === RUN TestRuntimeConfigProviderOnChangeCallbackCanCallCurrent
- --- PASS: TestRuntimeConfigProviderOnChangeCallbackCanCallCurrent (0.00s)
- === RUN TestRuntimeConfigProviderOnChangeFallsBackWhenPayloadIsNil
- --- PASS: TestRuntimeConfigProviderOnChangeFallsBackWhenPayloadIsNil (0.00s)
- === RUN TestRuntimeConfigProviderOnChangeNilCallbackDoesNotRegister
- --- PASS: TestRuntimeConfigProviderOnChangeNilCallbackDoesNotRegister (0.00s)
- === RUN TestRuntimeConfigProviderWatchDelegatesToManager
- --- PASS: TestRuntimeConfigProviderWatchDelegatesToManager (0.00s)
- === RUN TestRuntimeConfigProviderCurrentReturnsMapClone
- --- PASS: TestRuntimeConfigProviderCurrentReturnsMapClone (0.00s)
- === RUN TestRuntimeConfigProviderCurrentReturnsNestedConfigClone
- --- PASS: TestRuntimeConfigProviderCurrentReturnsNestedConfigClone (0.00s)
- === RUN TestRuntimeConfigProviderOnChangePassesNestedConfigClone
- --- PASS: TestRuntimeConfigProviderOnChangePassesNestedConfigClone (0.00s)
- === RUN TestEngineSettingsPayloadFromNilConfigReturnsZeroPayload
- --- PASS: TestEngineSettingsPayloadFromNilConfigReturnsZeroPayload (0.00s)
- === RUN TestRuntimeConfigSnapshotFromConfigMapsUIRuntimeFields
- --- PASS: TestRuntimeConfigSnapshotFromConfigMapsUIRuntimeFields (0.00s)
- === RUN TestRuntimeConfigSnapshotFromConfigDetachesNestedMutableFields
- --- PASS: TestRuntimeConfigSnapshotFromConfigDetachesNestedMutableFields (0.00s)
- === RUN TestRuntimeConfigSnapshotFromNilConfigReturnsZeroSnapshot
- --- PASS: TestRuntimeConfigSnapshotFromNilConfigReturnsZeroSnapshot (0.00s)
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/auto
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/force
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/disable
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/unknown
- === RUN TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/zero_value
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes (0.00s)
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/auto (0.00s)
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/force (0.00s)
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/disable (0.00s)
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/unknown (0.00s)
- --- PASS: TestEngineSettingsPayloadFromConfigMapsHardwareDecodingModes/zero_value (0.00s)
- === RUN TestApplyGTKIMModuleFallback
- === RUN TestApplyGTKIMModuleFallback/GTK_IM_MODULE_already_set_=>_no_override,_no_message
- === RUN TestApplyGTKIMModuleFallback/non-Wayland_with_GTK_IM_MODULE_unset_=>_no_override,_no_message
- === RUN TestApplyGTKIMModuleFallback/Wayland_via_XDG_SESSION_TYPE_with_GTK_IM_MODULE_unset_=>_override_+_message
- === RUN TestApplyGTKIMModuleFallback/Wayland_via_WAYLAND_DISPLAY_with_GTK_IM_MODULE_unset_=>_override_+_message
- --- PASS: TestApplyGTKIMModuleFallback (0.00s)
- --- PASS: TestApplyGTKIMModuleFallback/GTK_IM_MODULE_already_set_=>_no_override,_no_message (0.00s)
- --- PASS: TestApplyGTKIMModuleFallback/non-Wayland_with_GTK_IM_MODULE_unset_=>_no_override,_no_message (0.00s)
- --- PASS: TestApplyGTKIMModuleFallback/Wayland_via_XDG_SESSION_TYPE_with_GTK_IM_MODULE_unset_=>_override_+_message (0.00s)
- --- PASS: TestApplyGTKIMModuleFallback/Wayland_via_WAYLAND_DISPLAY_with_GTK_IM_MODULE_unset_=>_override_+_message (0.00s)
- === RUN TestResolveRuntimeProfile_UsesConfigEngineResolution
- --- PASS: TestResolveRuntimeProfile_UsesConfigEngineResolution (0.00s)
- === RUN TestResolveRuntimeProfile_ProdPreservesSharedPaths
- --- PASS: TestResolveRuntimeProfile_ProdPreservesSharedPaths (0.00s)
- === RUN TestResolveRuntimeProfile_DevUsesEngineSpecificNamespaces
- --- PASS: TestResolveRuntimeProfile_DevUsesEngineSpecificNamespaces (0.00s)
- === RUN TestResolveXDGRuntimeDir_UsesSharedRuntimeRootInDev
- --- PASS: TestResolveXDGRuntimeDir_UsesSharedRuntimeRootInDev (0.00s)
- === RUN TestResolveXDGRuntimeDir_UsesStateRuntimeRootInProd
- --- PASS: TestResolveXDGRuntimeDir_UsesStateRuntimeRootInProd (0.00s)
- === RUN TestNewSessionSpawnerRejectsDetachedRestoreForEphemeralProfile
- --- PASS: TestNewSessionSpawnerRejectsDetachedRestoreForEphemeralProfile (0.00s)
- === RUN TestRunSessionCleanup_DoesNotEndOtherActiveBrowserSessionsWithoutLivenessProof
- === PAUSE TestRunSessionCleanup_DoesNotEndOtherActiveBrowserSessionsWithoutLivenessProof
- === RUN TestRunSessionCleanup_NoPanicOnNilSessions
- === PAUSE TestRunSessionCleanup_NoPanicOnNilSessions
- === CONT TestRunSessionCleanup_DoesNotEndOtherActiveBrowserSessionsWithoutLivenessProof
- === CONT TestRunSessionCleanup_NoPanicOnNilSessions
- --- PASS: TestRunSessionCleanup_NoPanicOnNilSessions (0.00s)
- --- PASS: TestRunSessionCleanup_DoesNotEndOtherActiveBrowserSessionsWithoutLivenessProof (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/bootstrap 0.593s
- ? github.com/bnema/dumber/internal/bootstrap/mocks [no test files]
- === RUN TestResolveCLIThemePreservesDarkDefault
- --- PASS: TestResolveCLIThemePreservesDarkDefault (0.00s)
- === RUN TestResolveCLIThemeHonorsExplicitLightPreference
- --- PASS: TestResolveCLIThemeHonorsExplicitLightPreference (0.00s)
- === RUN TestResolveCLIThemeUsesEnabledExternalTheme
- --- PASS: TestResolveCLIThemeUsesEnabledExternalTheme (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/cli 0.054s
- === RUN TestParseBrowseArgs
- === RUN TestParseBrowseArgs/normal
- === RUN TestParseBrowseArgs/named
- === RUN TestParseBrowseArgs/url_after
- === RUN TestParseBrowseArgs/url_before
- === RUN TestParseBrowseArgs/missing_name
- === RUN TestParseBrowseArgs/empty_equals
- === RUN TestParseBrowseArgs/empty_separate
- === RUN TestParseBrowseArgs/flag-like_name
- === RUN TestParseBrowseArgs/flag-like_profile
- === RUN TestParseBrowseArgs/help
- === RUN TestParseBrowseArgs/unknown
- === RUN TestParseBrowseArgs/extra
- --- PASS: TestParseBrowseArgs (0.00s)
- --- PASS: TestParseBrowseArgs/normal (0.00s)
- --- PASS: TestParseBrowseArgs/named (0.00s)
- --- PASS: TestParseBrowseArgs/url_after (0.00s)
- --- PASS: TestParseBrowseArgs/url_before (0.00s)
- --- PASS: TestParseBrowseArgs/missing_name (0.00s)
- --- PASS: TestParseBrowseArgs/empty_equals (0.00s)
- --- PASS: TestParseBrowseArgs/empty_separate (0.00s)
- --- PASS: TestParseBrowseArgs/flag-like_name (0.00s)
- --- PASS: TestParseBrowseArgs/flag-like_profile (0.00s)
- --- PASS: TestParseBrowseArgs/help (0.00s)
- --- PASS: TestParseBrowseArgs/unknown (0.00s)
- --- PASS: TestParseBrowseArgs/extra (0.00s)
- === RUN TestParseBrowseLaunchArgsProfiles
- --- PASS: TestParseBrowseLaunchArgsProfiles (0.00s)
- === RUN TestBrowseCommandPreRunERejectsFlagLikeValues
- --- PASS: TestBrowseCommandPreRunERejectsFlagLikeValues (0.00s)
- === RUN TestParseSelectionResolvesExistingLocalFile
- --- PASS: TestParseSelectionResolvesExistingLocalFile (0.00s)
- === RUN TestParseSelectionLeavesBangShortcutsToSearchHandling
- --- PASS: TestParseSelectionLeavesBangShortcutsToSearchHandling (0.00s)
- === RUN TestGetSessionsMerged_DBAndFS
- --- PASS: TestGetSessionsMerged_DBAndFS (0.00s)
- === RUN TestGetSessionsMerged_MissingTableFallsBack
- --- PASS: TestGetSessionsMerged_MissingTableFallsBack (0.00s)
- === RUN TestFindSession_DBShortIDMatch
- --- PASS: TestFindSession_DBShortIDMatch (0.00s)
- === RUN TestRootCommand_RegistersOmniboxCommand
- --- PASS: TestRootCommand_RegistersOmniboxCommand (0.00s)
- === RUN TestRootCommand_BrowseCommandRejectsExtraArgs
- --- PASS: TestRootCommand_BrowseCommandRejectsExtraArgs (0.00s)
- === RUN TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing
- === RUN TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/interactive_sessions
- === RUN TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/list_sessions
- === RUN TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/delete_session
- === RUN TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/find_session_helper
- --- PASS: TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing (0.00s)
- --- PASS: TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/interactive_sessions (0.00s)
- --- PASS: TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/list_sessions (0.00s)
- --- PASS: TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/delete_session (0.00s)
- --- PASS: TestSessionCommandsReturnManagementErrorWhenSessionUseCaseMissing/find_session_helper (0.00s)
- === RUN TestSessionRestoreReturnsRestorationErrorWhenSessionUseCaseMissing
- --- PASS: TestSessionRestoreReturnsRestorationErrorWhenSessionUseCaseMissing (0.00s)
- === RUN TestFindSessionByIDOrSuffixSearchesBeyondDefaultLimit
- --- PASS: TestFindSessionByIDOrSuffixSearchesBeyondDefaultLimit (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/cli/cmd 0.085s
- ? github.com/bnema/dumber/internal/cli/cmd/mocks [no test files]
- === RUN TestRenderSessionsList_KeepsSelectedVisibleWhenExpandedRowAbove
- --- PASS: TestRenderSessionsList_KeepsSelectedVisibleWhenExpandedRowAbove (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/cli/model 0.004s
- === RUN TestConfigRenderer_RenderOpening
- --- PASS: TestConfigRenderer_RenderOpening (0.00s)
- === RUN TestCrashesCLIRenderer
- --- PASS: TestCrashesCLIRenderer (0.00s)
- === RUN TestPurgeModel_SessionsDisabledWhenDataSelected
- --- PASS: TestPurgeModel_SessionsDisabledWhenDataSelected (0.00s)
- === RUN TestPurgeModel_SelectedSessionIDs_ReturnsNilWhenDataSelected
- --- PASS: TestPurgeModel_SelectedSessionIDs_ReturnsNilWhenDataSelected (0.00s)
- === RUN TestPurgeModel_SelectedCount_IncludesSessions
- --- PASS: TestPurgeModel_SelectedCount_IncludesSessions (0.00s)
- === RUN TestPurgeModel_ToggleAllSessions
- --- PASS: TestPurgeModel_ToggleAllSessions (0.00s)
- === RUN TestPurgeModel_SelectedSize_IncludesAllSessionsWhenSelected
- --- PASS: TestPurgeModel_SelectedSize_IncludesAllSessionsWhenSelected (0.00s)
- === RUN TestPurgeModel_SelectedSize_IncludesFullSessionsSizeWhenDataSelected
- --- PASS: TestPurgeModel_SelectedSize_IncludesFullSessionsSizeWhenDataSelected (0.00s)
- === RUN TestSessionsCLIRenderer
- --- PASS: TestSessionsCLIRenderer (0.00s)
- === RUN TestNewThemeFromResolvedUsesActivePalette
- --- PASS: TestNewThemeFromResolvedUsesActivePalette (0.00s)
- === RUN TestNewThemeFromResolvedFallsBackToDarkPalette
- --- PASS: TestNewThemeFromResolvedFallsBackToDarkPalette (0.00s)
- === RUN TestNewThemeFromResolvedFallsBackToDefaultDarkPalette
- --- PASS: TestNewThemeFromResolvedFallsBackToDefaultDarkPalette (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/cli/styles 0.006s
- === RUN TestComputeCompletionSuffix
- === RUN TestComputeCompletionSuffix/empty_input
- === RUN TestComputeCompletionSuffix/empty_fullText
- === RUN TestComputeCompletionSuffix/both_empty
- === RUN TestComputeCompletionSuffix/exact_match_returns_false
- === RUN TestComputeCompletionSuffix/prefix_match
- === RUN TestComputeCompletionSuffix/case_insensitive_match
- === RUN TestComputeCompletionSuffix/case_insensitive_preserves_original_case_in_suffix
- === RUN TestComputeCompletionSuffix/no_prefix_match
- === RUN TestComputeCompletionSuffix/input_longer_than_fullText
- === RUN TestComputeCompletionSuffix/single_character_prefix
- === RUN TestComputeCompletionSuffix/bang_shortcut_prefix
- --- PASS: TestComputeCompletionSuffix (0.00s)
- --- PASS: TestComputeCompletionSuffix/empty_input (0.00s)
- --- PASS: TestComputeCompletionSuffix/empty_fullText (0.00s)
- --- PASS: TestComputeCompletionSuffix/both_empty (0.00s)
- --- PASS: TestComputeCompletionSuffix/exact_match_returns_false (0.00s)
- --- PASS: TestComputeCompletionSuffix/prefix_match (0.00s)
- --- PASS: TestComputeCompletionSuffix/case_insensitive_match (0.00s)
- --- PASS: TestComputeCompletionSuffix/case_insensitive_preserves_original_case_in_suffix (0.00s)
- --- PASS: TestComputeCompletionSuffix/no_prefix_match (0.00s)
- --- PASS: TestComputeCompletionSuffix/input_longer_than_fullText (0.00s)
- --- PASS: TestComputeCompletionSuffix/single_character_prefix (0.00s)
- --- PASS: TestComputeCompletionSuffix/bang_shortcut_prefix (0.00s)
- === RUN TestStripProtocol
- === RUN TestStripProtocol/https_protocol
- === RUN TestStripProtocol/http_protocol
- === RUN TestStripProtocol/no_protocol
- === RUN TestStripProtocol/https_with_path
- === RUN TestStripProtocol/http_with_query_string
- === RUN TestStripProtocol/file_protocol_unchanged
- === RUN TestStripProtocol/empty_string
- --- PASS: TestStripProtocol (0.00s)
- --- PASS: TestStripProtocol/https_protocol (0.00s)
- --- PASS: TestStripProtocol/http_protocol (0.00s)
- --- PASS: TestStripProtocol/no_protocol (0.00s)
- --- PASS: TestStripProtocol/https_with_path (0.00s)
- --- PASS: TestStripProtocol/http_with_query_string (0.00s)
- --- PASS: TestStripProtocol/file_protocol_unchanged (0.00s)
- --- PASS: TestStripProtocol/empty_string (0.00s)
- === RUN TestComputeURLCompletionSuffix
- === RUN TestComputeURLCompletionSuffix/empty_input
- === RUN TestComputeURLCompletionSuffix/direct_match_with_protocol
- === RUN TestComputeURLCompletionSuffix/match_without_protocol_in_input
- === RUN TestComputeURLCompletionSuffix/match_with_www_prefix_in_URL_strips_www
- === RUN TestComputeURLCompletionSuffix/match_with_www_in_input_but_not_URL
- === RUN TestComputeURLCompletionSuffix/no_match
- === RUN TestComputeURLCompletionSuffix/case_insensitive_URL_match
- === RUN TestComputeURLCompletionSuffix/http_protocol_stripped
- === RUN TestComputeURLCompletionSuffix/full_URL_match_returns_false
- === RUN TestComputeURLCompletionSuffix/URL_with_path
- --- PASS: TestComputeURLCompletionSuffix (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/empty_input (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/direct_match_with_protocol (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/match_without_protocol_in_input (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/match_with_www_prefix_in_URL_strips_www (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/match_with_www_in_input_but_not_URL (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/no_match (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/case_insensitive_URL_match (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/http_protocol_stripped (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/full_URL_match_returns_false (0.00s)
- --- PASS: TestComputeURLCompletionSuffix/URL_with_path (0.00s)
- === RUN TestBestURLCompletion_PrefersHostForHostLikeInput
- --- PASS: TestBestURLCompletion_PrefersHostForHostLikeInput (0.00s)
- === RUN TestBestURLCompletion_KeepsPathForPathLikeInput
- --- PASS: TestBestURLCompletion_KeepsPathForPathLikeInput (0.00s)
- === RUN TestBestURLCompletion_SelectsAnyValidPrefixFromVisibleList
- --- PASS: TestBestURLCompletion_SelectsAnyValidPrefixFromVisibleList (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/autocomplete 0.004s
- ? github.com/bnema/dumber/internal/domain/build [no test files]
- === RUN TestSanitizeFilename
- === RUN TestSanitizeFilename/normal_filename
- === RUN TestSanitizeFilename/filename_with_spaces
- === RUN TestSanitizeFilename/path_traversal_with_parent_dirs
- === RUN TestSanitizeFilename/path_traversal_hidden_file
- === RUN TestSanitizeFilename/nested_path
- === RUN TestSanitizeFilename/absolute_path
- === RUN TestSanitizeFilename/dot_only
- === RUN TestSanitizeFilename/double_dot_only
- === RUN TestSanitizeFilename/empty_string
- === RUN TestSanitizeFilename/hidden_file
- === RUN TestSanitizeFilename/windows_style_path
- --- PASS: TestSanitizeFilename (0.00s)
- --- PASS: TestSanitizeFilename/normal_filename (0.00s)
- --- PASS: TestSanitizeFilename/filename_with_spaces (0.00s)
- --- PASS: TestSanitizeFilename/path_traversal_with_parent_dirs (0.00s)
- --- PASS: TestSanitizeFilename/path_traversal_hidden_file (0.00s)
- --- PASS: TestSanitizeFilename/nested_path (0.00s)
- --- PASS: TestSanitizeFilename/absolute_path (0.00s)
- --- PASS: TestSanitizeFilename/dot_only (0.00s)
- --- PASS: TestSanitizeFilename/double_dot_only (0.00s)
- --- PASS: TestSanitizeFilename/empty_string (0.00s)
- --- PASS: TestSanitizeFilename/hidden_file (0.00s)
- --- PASS: TestSanitizeFilename/windows_style_path (0.00s)
- === RUN TestSanitizeFilenameWithExtension
- === RUN TestSanitizeFilenameWithExtension/no_extension_adds_inferred
- === RUN TestSanitizeFilenameWithExtension/existing_extension_preserved
- === RUN TestSanitizeFilenameWithExtension/path_traversal_with_inferred_extension
- === RUN TestSanitizeFilenameWithExtension/no_mime_type_returns_sanitized
- --- PASS: TestSanitizeFilenameWithExtension (0.00s)
- --- PASS: TestSanitizeFilenameWithExtension/no_extension_adds_inferred (0.00s)
- --- PASS: TestSanitizeFilenameWithExtension/existing_extension_preserved (0.00s)
- --- PASS: TestSanitizeFilenameWithExtension/path_traversal_with_inferred_extension (0.00s)
- --- PASS: TestSanitizeFilenameWithExtension/no_mime_type_returns_sanitized (0.00s)
- === RUN TestGetExtensionFromMimeType
- === RUN TestGetExtensionFromMimeType/empty_mime_type
- === RUN TestGetExtensionFromMimeType/unknown_mime_type
- === RUN TestGetExtensionFromMimeType/pdf_mime_type
- === RUN TestGetExtensionFromMimeType/pdf_mime_type_with_charset_param
- === RUN TestGetExtensionFromMimeType/text_html_with_charset
- === RUN TestGetExtensionFromMimeType/mime_type_with_multiple_params
- === RUN TestGetExtensionFromMimeType/invalid_mime_type
- --- PASS: TestGetExtensionFromMimeType (0.00s)
- --- PASS: TestGetExtensionFromMimeType/empty_mime_type (0.00s)
- --- PASS: TestGetExtensionFromMimeType/unknown_mime_type (0.00s)
- --- PASS: TestGetExtensionFromMimeType/pdf_mime_type (0.00s)
- --- PASS: TestGetExtensionFromMimeType/pdf_mime_type_with_charset_param (0.00s)
- --- PASS: TestGetExtensionFromMimeType/text_html_with_charset (0.00s)
- --- PASS: TestGetExtensionFromMimeType/mime_type_with_multiple_params (0.00s)
- --- PASS: TestGetExtensionFromMimeType/invalid_mime_type (0.00s)
- === RUN TestExtractFilenameFromDestination
- === RUN TestExtractFilenameFromDestination/file_URI_with_path
- === RUN TestExtractFilenameFromDestination/file_URI_root
- === RUN TestExtractFilenameFromDestination/plain_path
- === RUN TestExtractFilenameFromDestination/filename_only
- === RUN TestExtractFilenameFromDestination/empty_string
- === RUN TestExtractFilenameFromDestination/file_URI_with_spaces
- --- PASS: TestExtractFilenameFromDestination (0.00s)
- --- PASS: TestExtractFilenameFromDestination/file_URI_with_path (0.00s)
- --- PASS: TestExtractFilenameFromDestination/file_URI_root (0.00s)
- --- PASS: TestExtractFilenameFromDestination/plain_path (0.00s)
- --- PASS: TestExtractFilenameFromDestination/filename_only (0.00s)
- --- PASS: TestExtractFilenameFromDestination/empty_string (0.00s)
- --- PASS: TestExtractFilenameFromDestination/file_URI_with_spaces (0.00s)
- === RUN TestExtractFilenameFromURI
- === RUN TestExtractFilenameFromURI/http_URL_with_filename
- === RUN TestExtractFilenameFromURI/http_URL_with_query_params
- === RUN TestExtractFilenameFromURI/http_URL_without_filename
- === RUN TestExtractFilenameFromURI/empty_string
- === RUN TestExtractFilenameFromURI/plain_path
- --- PASS: TestExtractFilenameFromURI (0.00s)
- --- PASS: TestExtractFilenameFromURI/http_URL_with_filename (0.00s)
- --- PASS: TestExtractFilenameFromURI/http_URL_with_query_params (0.00s)
- --- PASS: TestExtractFilenameFromURI/http_URL_without_filename (0.00s)
- --- PASS: TestExtractFilenameFromURI/empty_string (0.00s)
- --- PASS: TestExtractFilenameFromURI/plain_path (0.00s)
- === RUN TestMakeUniqueFilename
- === RUN TestMakeUniqueFilename/file_does_not_exist
- === RUN TestMakeUniqueFilename/file_exists,_adds__(1)
- === RUN TestMakeUniqueFilename/file_and__(1)_exist,_adds__(2)
- === RUN TestMakeUniqueFilename/no_extension
- === RUN TestMakeUniqueFilename/hidden_file_with_extension
- --- PASS: TestMakeUniqueFilename (0.00s)
- --- PASS: TestMakeUniqueFilename/file_does_not_exist (0.00s)
- --- PASS: TestMakeUniqueFilename/file_exists,_adds__(1) (0.00s)
- --- PASS: TestMakeUniqueFilename/file_and__(1)_exist,_adds__(2) (0.00s)
- --- PASS: TestMakeUniqueFilename/no_extension (0.00s)
- --- PASS: TestMakeUniqueFilename/hidden_file_with_extension (0.00s)
- === RUN TestShouldForceDownloadForURI
- === RUN TestShouldForceDownloadForURI/pdf_path
- === RUN TestShouldForceDownloadForURI/iso_path
- === RUN TestShouldForceDownloadForURI/archive_path
- === RUN TestShouldForceDownloadForURI/plain_html
- === RUN TestShouldForceDownloadForURI/empty
- --- PASS: TestShouldForceDownloadForURI (0.00s)
- --- PASS: TestShouldForceDownloadForURI/pdf_path (0.00s)
- --- PASS: TestShouldForceDownloadForURI/iso_path (0.00s)
- --- PASS: TestShouldForceDownloadForURI/archive_path (0.00s)
- --- PASS: TestShouldForceDownloadForURI/plain_html (0.00s)
- --- PASS: TestShouldForceDownloadForURI/empty (0.00s)
- === RUN TestShouldForceDownloadForMIMEType
- === RUN TestShouldForceDownloadForMIMEType/pdf
- === RUN TestShouldForceDownloadForMIMEType/pdf_with_params
- === RUN TestShouldForceDownloadForMIMEType/iso_image
- === RUN TestShouldForceDownloadForMIMEType/html
- === RUN TestShouldForceDownloadForMIMEType/empty
- --- PASS: TestShouldForceDownloadForMIMEType (0.00s)
- --- PASS: TestShouldForceDownloadForMIMEType/pdf (0.00s)
- --- PASS: TestShouldForceDownloadForMIMEType/pdf_with_params (0.00s)
- --- PASS: TestShouldForceDownloadForMIMEType/iso_image (0.00s)
- --- PASS: TestShouldForceDownloadForMIMEType/html (0.00s)
- --- PASS: TestShouldForceDownloadForMIMEType/empty (0.00s)
- === RUN TestShouldForceDownload
- --- PASS: TestShouldForceDownload (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/download 0.013s
- === RUN TestHasAccents
- === RUN TestHasAccents/lowercase_e
- === RUN TestHasAccents/uppercase_E
- === RUN TestHasAccents/lowercase_a
- === RUN TestHasAccents/uppercase_A
- === RUN TestHasAccents/lowercase_c
- === RUN TestHasAccents/lowercase_n
- === RUN TestHasAccents/lowercase_x_(no_accents)
- === RUN TestHasAccents/uppercase_X_(no_accents)
- === RUN TestHasAccents/digit_1_(no_accents)
- === RUN TestHasAccents/space_(no_accents)
- --- PASS: TestHasAccents (0.00s)
- --- PASS: TestHasAccents/lowercase_e (0.00s)
- --- PASS: TestHasAccents/uppercase_E (0.00s)
- --- PASS: TestHasAccents/lowercase_a (0.00s)
- --- PASS: TestHasAccents/uppercase_A (0.00s)
- --- PASS: TestHasAccents/lowercase_c (0.00s)
- --- PASS: TestHasAccents/lowercase_n (0.00s)
- --- PASS: TestHasAccents/lowercase_x_(no_accents) (0.00s)
- --- PASS: TestHasAccents/uppercase_X_(no_accents) (0.00s)
- --- PASS: TestHasAccents/digit_1_(no_accents) (0.00s)
- --- PASS: TestHasAccents/space_(no_accents) (0.00s)
- === RUN TestGetAccents
- === RUN TestGetAccents/lowercase_e
- === RUN TestGetAccents/uppercase_E
- === RUN TestGetAccents/lowercase_a
- === RUN TestGetAccents/uppercase_A
- === RUN TestGetAccents/lowercase_c
- === RUN TestGetAccents/uppercase_C_with_shift
- === RUN TestGetAccents/no_accents_x
- --- PASS: TestGetAccents (0.00s)
- --- PASS: TestGetAccents/lowercase_e (0.00s)
- --- PASS: TestGetAccents/uppercase_E (0.00s)
- --- PASS: TestGetAccents/lowercase_a (0.00s)
- --- PASS: TestGetAccents/uppercase_A (0.00s)
- --- PASS: TestGetAccents/lowercase_c (0.00s)
- --- PASS: TestGetAccents/uppercase_C_with_shift (0.00s)
- --- PASS: TestGetAccents/no_accents_x (0.00s)
- === RUN TestGetAccents_UppercaseFromLowercase
- --- PASS: TestGetAccents_UppercaseFromLowercase (0.00s)
- === RUN TestAccentMapCoverage
- --- PASS: TestAccentMapCoverage (0.00s)
- === RUN TestEngineSettingsPayloadContainsRuntimeWebContentFields
- --- PASS: TestEngineSettingsPayloadContainsRuntimeWebContentFields (0.00s)
- === RUN TestEngineSettingsUpdateHasNoRawBridge
- --- PASS: TestEngineSettingsUpdateHasNoRawBridge (0.00s)
- === RUN TestFavoriteSupportsMultipleTagsAndNoTags
- --- PASS: TestFavoriteSupportsMultipleTagsAndNoTags (0.00s)
- === RUN TestTagStoresTrimmedDisplayNameAndColor
- --- PASS: TestTagStoresTrimmedDisplayNameAndColor (0.00s)
- === RUN TestPaneNode_VisibleAreaCount
- === RUN TestPaneNode_VisibleAreaCount/single_leaf_pane
- === RUN TestPaneNode_VisibleAreaCount/horizontal_split_with_two_leaves
- === RUN TestPaneNode_VisibleAreaCount/stacked_panes_count_as_one
- === RUN TestPaneNode_VisibleAreaCount/split_with_one_stacked_side
- === RUN TestPaneNode_VisibleAreaCount/nested_splits
- === RUN TestPaneNode_VisibleAreaCount/complex_tree_with_stacks_and_splits
- --- PASS: TestPaneNode_VisibleAreaCount (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/single_leaf_pane (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/horizontal_split_with_two_leaves (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/stacked_panes_count_as_one (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/split_with_one_stacked_side (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/nested_splits (0.00s)
- --- PASS: TestPaneNode_VisibleAreaCount/complex_tree_with_stacks_and_splits (0.00s)
- === RUN TestValidateHexColor_ValidHex
- --- PASS: TestValidateHexColor_ValidHex (0.00s)
- === RUN TestValidateHexColor_InvalidHex
- --- PASS: TestValidateHexColor_InvalidHex (0.00s)
- === RUN TestDefaultThemeFonts_ReturnsSaneDefaults
- --- PASS: TestDefaultThemeFonts_ReturnsSaneDefaults (0.00s)
- === RUN TestResolvedThemePalette_MustBeCSSSafeHex
- --- PASS: TestResolvedThemePalette_MustBeCSSSafeHex (0.00s)
- === RUN TestResolvedThemePalette_RejectsInvalidColors
- --- PASS: TestResolvedThemePalette_RejectsInvalidColors (0.00s)
- === RUN TestThemeModeColors_DefaultsAreCSSSafe
- --- PASS: TestThemeModeColors_DefaultsAreCSSSafe (0.00s)
- === RUN TestResolvedTheme_StructFieldsExist
- --- PASS: TestResolvedTheme_StructFieldsExist (0.00s)
- === RUN TestThemeSourceKind_ConstantsAreDistinct
- --- PASS: TestThemeSourceKind_ConstantsAreDistinct (0.00s)
- === RUN TestThemeWarning_FieldsExist
- --- PASS: TestThemeWarning_FieldsExist (0.00s)
- === RUN TestExternalTheme_IsDomainPure
- --- PASS: TestExternalTheme_IsDomainPure (0.00s)
- === RUN TestDefaultThemeFonts_AllFieldsAreSet
- --- PASS: TestDefaultThemeFonts_AllFieldsAreSet (0.00s)
- === RUN TestDefaultThemeModeColors_ReturnsSaneDefaults
- --- PASS: TestDefaultThemeModeColors_ReturnsSaneDefaults (0.00s)
- === RUN TestDefaultDarkPalette_ReturnsValidHex
- --- PASS: TestDefaultDarkPalette_ReturnsValidHex (0.00s)
- === RUN TestDefaultLightPalette_ReturnsValidHex
- --- PASS: TestDefaultLightPalette_ReturnsValidHex (0.00s)
- === RUN TestValidatePaletteHex_Valid
- --- PASS: TestValidatePaletteHex_Valid (0.00s)
- === RUN TestValidatePaletteHex_Invalid
- --- PASS: TestValidatePaletteHex_Invalid (0.00s)
- === RUN TestValidatePaletteHex_Nil
- --- PASS: TestValidatePaletteHex_Nil (0.00s)
- === RUN TestIsPaletteValid_EdgeCases
- --- PASS: TestIsPaletteValid_EdgeCases (0.00s)
- === RUN TestMergePalette_FillsEmpties
- --- PASS: TestMergePalette_FillsEmpties (0.00s)
- === RUN TestMergePalette_NilSrc
- --- PASS: TestMergePalette_NilSrc (0.00s)
- === RUN TestMergeFonts_FillsEmpties
- --- PASS: TestMergeFonts_FillsEmpties (0.00s)
- === RUN TestMergeFonts_NilSrc
- --- PASS: TestMergeFonts_NilSrc (0.00s)
- === RUN TestMergeModeColors_FillsEmpties
- --- PASS: TestMergeModeColors_FillsEmpties (0.00s)
- === RUN TestValidateModeColorsHex_ReturnsWarnings
- --- PASS: TestValidateModeColorsHex_ReturnsWarnings (0.00s)
- === RUN TestValidateModeColorsHex_DefaultsAreValid
- --- PASS: TestValidateModeColorsHex_DefaultsAreValid (0.00s)
- === RUN TestZoomPercentageRoundsDisplayedValue
- === RUN TestZoomPercentageRoundsDisplayedValue/default_zoom
- === RUN TestZoomPercentageRoundsDisplayedValue/accumulated_default_error
- === RUN TestZoomPercentageRoundsDisplayedValue/accumulated_above_default
- === RUN TestZoomPercentageRoundsDisplayedValue/ordinary_percent
- === RUN TestZoomPercentageRoundsDisplayedValue/minimum_zoom
- === RUN TestZoomPercentageRoundsDisplayedValue/maximum_zoom
- === RUN TestZoomPercentageRoundsDisplayedValue/rounds_up
- === RUN TestZoomPercentageRoundsDisplayedValue/rounds_down
- === RUN TestZoomPercentageRoundsDisplayedValue/three_digit_percent_below_half
- --- PASS: TestZoomPercentageRoundsDisplayedValue (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/default_zoom (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/accumulated_default_error (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/accumulated_above_default (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/ordinary_percent (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/minimum_zoom (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/maximum_zoom (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/rounds_up (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/rounds_down (0.00s)
- --- PASS: TestZoomPercentageRoundsDisplayedValue/three_digit_percent_below_half (0.00s)
- === RUN TestZoomPercentageSurvivesRepeatedSteps
- --- PASS: TestZoomPercentageSurvivesRepeatedSteps (0.00s)
- === RUN TestPermissionType_Constants
- === RUN TestPermissionType_Constants/microphone
- === RUN TestPermissionType_Constants/camera
- === RUN TestPermissionType_Constants/display
- === RUN TestPermissionType_Constants/device_info
- === RUN TestPermissionType_Constants/clipboard
- === RUN TestPermissionType_Constants/notification
- === RUN TestPermissionType_Constants/geolocation
- === RUN TestPermissionType_Constants/pointer_lock
- === RUN TestPermissionType_Constants/media_key_system
- === RUN TestPermissionType_Constants/website_data_access
- --- PASS: TestPermissionType_Constants (0.00s)
- --- PASS: TestPermissionType_Constants/microphone (0.00s)
- --- PASS: TestPermissionType_Constants/camera (0.00s)
- --- PASS: TestPermissionType_Constants/display (0.00s)
- --- PASS: TestPermissionType_Constants/device_info (0.00s)
- --- PASS: TestPermissionType_Constants/clipboard (0.00s)
- --- PASS: TestPermissionType_Constants/notification (0.00s)
- --- PASS: TestPermissionType_Constants/geolocation (0.00s)
- --- PASS: TestPermissionType_Constants/pointer_lock (0.00s)
- --- PASS: TestPermissionType_Constants/media_key_system (0.00s)
- --- PASS: TestPermissionType_Constants/website_data_access (0.00s)
- === RUN TestPermissionDecision_Constants
- === RUN TestPermissionDecision_Constants/granted
- === RUN TestPermissionDecision_Constants/denied
- === RUN TestPermissionDecision_Constants/prompt
- --- PASS: TestPermissionDecision_Constants (0.00s)
- --- PASS: TestPermissionDecision_Constants/granted (0.00s)
- --- PASS: TestPermissionDecision_Constants/denied (0.00s)
- --- PASS: TestPermissionDecision_Constants/prompt (0.00s)
- === RUN TestPermissionRecord_IsGranted
- === RUN TestPermissionRecord_IsGranted/granted
- === RUN TestPermissionRecord_IsGranted/denied
- === RUN TestPermissionRecord_IsGranted/prompt
- --- PASS: TestPermissionRecord_IsGranted (0.00s)
- --- PASS: TestPermissionRecord_IsGranted/granted (0.00s)
- --- PASS: TestPermissionRecord_IsGranted/denied (0.00s)
- --- PASS: TestPermissionRecord_IsGranted/prompt (0.00s)
- === RUN TestPermissionRecord_IsDenied
- === RUN TestPermissionRecord_IsDenied/granted
- === RUN TestPermissionRecord_IsDenied/denied
- === RUN TestPermissionRecord_IsDenied/prompt
- --- PASS: TestPermissionRecord_IsDenied (0.00s)
- --- PASS: TestPermissionRecord_IsDenied/granted (0.00s)
- --- PASS: TestPermissionRecord_IsDenied/denied (0.00s)
- --- PASS: TestPermissionRecord_IsDenied/prompt (0.00s)
- === RUN TestCanPersist
- === RUN TestCanPersist/display_capture
- === RUN TestCanPersist/device_info
- === RUN TestCanPersist/pointer_lock
- === RUN TestCanPersist/microphone
- === RUN TestCanPersist/camera
- === RUN TestCanPersist/clipboard
- === RUN TestCanPersist/notification
- === RUN TestCanPersist/geolocation
- === RUN TestCanPersist/media_key_system
- === RUN TestCanPersist/website_data_access
- --- PASS: TestCanPersist (0.00s)
- --- PASS: TestCanPersist/display_capture (0.00s)
- --- PASS: TestCanPersist/device_info (0.00s)
- --- PASS: TestCanPersist/pointer_lock (0.00s)
- --- PASS: TestCanPersist/microphone (0.00s)
- --- PASS: TestCanPersist/camera (0.00s)
- --- PASS: TestCanPersist/clipboard (0.00s)
- --- PASS: TestCanPersist/notification (0.00s)
- --- PASS: TestCanPersist/geolocation (0.00s)
- --- PASS: TestCanPersist/media_key_system (0.00s)
- --- PASS: TestCanPersist/website_data_access (0.00s)
- === RUN TestIsAutoAllow
- === RUN TestIsAutoAllow/display_capture
- === RUN TestIsAutoAllow/device_info
- === RUN TestIsAutoAllow/pointer_lock
- === RUN TestIsAutoAllow/microphone
- === RUN TestIsAutoAllow/camera
- === RUN TestIsAutoAllow/clipboard
- === RUN TestIsAutoAllow/notification
- === RUN TestIsAutoAllow/geolocation
- --- PASS: TestIsAutoAllow (0.00s)
- --- PASS: TestIsAutoAllow/display_capture (0.00s)
- --- PASS: TestIsAutoAllow/device_info (0.00s)
- --- PASS: TestIsAutoAllow/pointer_lock (0.00s)
- --- PASS: TestIsAutoAllow/microphone (0.00s)
- --- PASS: TestIsAutoAllow/camera (0.00s)
- --- PASS: TestIsAutoAllow/clipboard (0.00s)
- --- PASS: TestIsAutoAllow/notification (0.00s)
- --- PASS: TestIsAutoAllow/geolocation (0.00s)
- === RUN TestPermissionSet
- --- PASS: TestPermissionSet (0.00s)
- === RUN TestTabListFromSnapshot_EmptyState
- --- PASS: TestTabListFromSnapshot_EmptyState (0.00s)
- === RUN TestTabListFromSnapshot_SingleTab
- --- PASS: TestTabListFromSnapshot_SingleTab (0.00s)
- === RUN TestTabListFromSnapshot_MultipleTabs
- --- PASS: TestTabListFromSnapshot_MultipleTabs (0.00s)
- === RUN TestTabListFromSnapshot_SplitPanes
- --- PASS: TestTabListFromSnapshot_SplitPanes (0.00s)
- === RUN TestTabListFromSnapshot_StackedPanes
- --- PASS: TestTabListFromSnapshot_StackedPanes (0.00s)
- === RUN TestTabList_ReplaceFrom
- --- PASS: TestTabList_ReplaceFrom (0.00s)
- === RUN TestTabList_SnapshotClonesTabsAndWorkspace
- --- PASS: TestTabList_SnapshotClonesTabsAndWorkspace (0.00s)
- === RUN TestTabList_ReplaceFromClonesSnapshotSource
- --- PASS: TestTabList_ReplaceFromClonesSnapshotSource (0.00s)
- === RUN TestTabList_ReplaceFrom_Nil
- --- PASS: TestTabList_ReplaceFrom_Nil (0.00s)
- === RUN TestSnapshotRoundTrip
- --- PASS: TestSnapshotRoundTrip (0.00s)
- === RUN TestFindPaneAcrossTabs
- --- PASS: TestFindPaneAcrossTabs (0.00s)
- === RUN TestSnapshotFromWindowTabLists_V2State
- --- PASS: TestSnapshotFromWindowTabLists_V2State (0.00s)
- === RUN TestWindowTabListsFromSnapshot_V2Restore
- --- PASS: TestWindowTabListsFromSnapshot_V2Restore (0.00s)
- === RUN TestWindowTabListsFromSnapshot_V1LegacySingleWindow
- --- PASS: TestWindowTabListsFromSnapshot_V1LegacySingleWindow (0.00s)
- === RUN TestWindowTabListsFromSnapshot_NilState
- --- PASS: TestWindowTabListsFromSnapshot_NilState (0.00s)
- === RUN TestWindowTabListsFromSnapshot_InvalidIndexesFallback
- --- PASS: TestWindowTabListsFromSnapshot_InvalidIndexesFallback (0.00s)
- === RUN TestTabListFromSnapshot_ActiveWindowWithZeroTabsFallsBackToFirstOverallTab
- --- PASS: TestTabListFromSnapshot_ActiveWindowWithZeroTabsFallsBackToFirstOverallTab (0.00s)
- === RUN TestTabListFromSnapshot_FlattensV2WindowSnapshots
- --- PASS: TestTabListFromSnapshot_FlattensV2WindowSnapshots (0.00s)
- === RUN TestWindowTabListsFromSnapshot_FutureV2VersionWithEmptyWindowsStaysEmpty
- --- PASS: TestWindowTabListsFromSnapshot_FutureV2VersionWithEmptyWindowsStaysEmpty (0.00s)
- === RUN TestSnapshotFromWindowTabLists_NilTabs
- --- PASS: TestSnapshotFromWindowTabLists_NilTabs (0.00s)
- === RUN TestSnapshotFromWindowTabLists_EmptyWindows
- --- PASS: TestSnapshotFromWindowTabLists_EmptyWindows (0.00s)
- === RUN TestSessionStateCountPanesUsesVersionForWindowSnapshots
- --- PASS: TestSessionStateCountPanesUsesVersionForWindowSnapshots (0.00s)
- === RUN TestSnapshotFromWindowTabLists_InvalidWindowIndex
- --- PASS: TestSnapshotFromWindowTabLists_InvalidWindowIndex (0.00s)
- === RUN TestFindPaneInNestedStructure
- --- PASS: TestFindPaneInNestedStructure (0.00s)
- === RUN TestV2SnapshotJSON_OmitEmptyLegacyFields
- --- PASS: TestV2SnapshotJSON_OmitEmptyLegacyFields (0.00s)
- === RUN TestV2SnapshotJSON_CanStillReadV1
- --- PASS: TestV2SnapshotJSON_CanStillReadV1 (0.00s)
- === RUN TestSession_ShortID
- --- PASS: TestSession_ShortID (0.00s)
- === RUN TestSession_Validate
- --- PASS: TestSession_Validate (0.00s)
- === RUN TestSession_End
- --- PASS: TestSession_End (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/entity 0.005s
- ? github.com/bnema/dumber/internal/domain/errors [no test files]
- === RUN TestKeyCandidates
- === RUN TestKeyCandidates/walks_path_before_public_host_to_registrable_domain
- === RUN TestKeyCandidates/strips_www
- === RUN TestKeyCandidates/localhost_with_port_is_exact
- === RUN TestKeyCandidates/ip_with_port_is_exact
- === RUN TestKeyCandidates/ipv6_with_port_is_exact
- === RUN TestKeyCandidates/uses_public_suffix_for_co_uk
- === RUN TestKeyCandidates/path_candidates_walk_from_exact_path_to_host
- === RUN TestKeyCandidates/trailing_slash_normalizes_to_parent_path_key
- === RUN TestKeyCandidates/path_normalization_removes_dot_segments_and_query_fragments
- === RUN TestKeyCandidates/host-like_string_preserves_path_before_host_fallback
- === RUN TestKeyCandidates/drops_default_https_port
- === RUN TestKeyCandidates/non_default_url_port_is_exact
- === RUN TestKeyCandidates/host-like_string_lowercases_and_trims_trailing_dot
- === RUN TestKeyCandidates/strips_www_before_preserving_non_default_port
- === RUN TestKeyCandidates/host-like_string_with_port_preserves_port_exact
- === RUN TestKeyCandidates/unicode_host_normalizes_to_punycode
- === RUN TestKeyCandidates/punycode_equivalent_matches_unicode
- === RUN TestKeyCandidates/empty_input_has_no_candidates
- === RUN TestKeyCandidates/about_url_has_no_candidates
- === RUN TestKeyCandidates/unsupported_scheme_has_no_candidates
- --- PASS: TestKeyCandidates (0.00s)
- --- PASS: TestKeyCandidates/walks_path_before_public_host_to_registrable_domain (0.00s)
- --- PASS: TestKeyCandidates/strips_www (0.00s)
- --- PASS: TestKeyCandidates/localhost_with_port_is_exact (0.00s)
- --- PASS: TestKeyCandidates/ip_with_port_is_exact (0.00s)
- --- PASS: TestKeyCandidates/ipv6_with_port_is_exact (0.00s)
- --- PASS: TestKeyCandidates/uses_public_suffix_for_co_uk (0.00s)
- --- PASS: TestKeyCandidates/path_candidates_walk_from_exact_path_to_host (0.00s)
- --- PASS: TestKeyCandidates/trailing_slash_normalizes_to_parent_path_key (0.00s)
- --- PASS: TestKeyCandidates/path_normalization_removes_dot_segments_and_query_fragments (0.00s)
- --- PASS: TestKeyCandidates/host-like_string_preserves_path_before_host_fallback (0.00s)
- --- PASS: TestKeyCandidates/drops_default_https_port (0.00s)
- --- PASS: TestKeyCandidates/non_default_url_port_is_exact (0.00s)
- --- PASS: TestKeyCandidates/host-like_string_lowercases_and_trims_trailing_dot (0.00s)
- --- PASS: TestKeyCandidates/strips_www_before_preserving_non_default_port (0.00s)
- --- PASS: TestKeyCandidates/host-like_string_with_port_preserves_port_exact (0.00s)
- --- PASS: TestKeyCandidates/unicode_host_normalizes_to_punycode (0.00s)
- --- PASS: TestKeyCandidates/punycode_equivalent_matches_unicode (0.00s)
- --- PASS: TestKeyCandidates/empty_input_has_no_candidates (0.00s)
- --- PASS: TestKeyCandidates/about_url_has_no_candidates (0.00s)
- --- PASS: TestKeyCandidates/unsupported_scheme_has_no_candidates (0.00s)
- === RUN TestCanonicalKey
- --- PASS: TestCanonicalKey (0.00s)
- === RUN TestCanonicalHostKey
- --- PASS: TestCanonicalHostKey (0.00s)
- === RUN TestShouldRefresh
- --- PASS: TestShouldRefresh (0.00s)
- === RUN TestContentHashChanged
- --- PASS: TestContentHashChanged (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/favicon 0.004s
- === RUN TestDeleteRangeCutoff
- === RUN TestDeleteRangeCutoff/hour
- === RUN TestDeleteRangeCutoff/day
- === RUN TestDeleteRangeCutoff/week
- === RUN TestDeleteRangeCutoff/month
- === RUN TestDeleteRangeCutoff/all
- === RUN TestDeleteRangeCutoff/unknown
- --- PASS: TestDeleteRangeCutoff (0.00s)
- --- PASS: TestDeleteRangeCutoff/hour (0.00s)
- --- PASS: TestDeleteRangeCutoff/day (0.00s)
- --- PASS: TestDeleteRangeCutoff/week (0.00s)
- --- PASS: TestDeleteRangeCutoff/month (0.00s)
- --- PASS: TestDeleteRangeCutoff/all (0.00s)
- --- PASS: TestDeleteRangeCutoff/unknown (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/history 0.002s
- === RUN TestCanonicalize_SameBindingSameString
- --- PASS: TestCanonicalize_SameBindingSameString (0.00s)
- === RUN TestCanonicalize_DifferentBindingsDiffer
- --- PASS: TestCanonicalize_DifferentBindingsDiffer (0.00s)
- === RUN TestCanonicalize_CanonicalForm
- --- PASS: TestCanonicalize_CanonicalForm (0.00s)
- === RUN TestParse_Invalid
- --- PASS: TestParse_Invalid (0.00s)
- === RUN TestKeyNames_AreCanonicalAndStable
- --- PASS: TestKeyNames_AreCanonicalAndStable (0.00s)
- PASS
- ok github.com/bnema/dumber/internal/domain/keychord 0.003s
- ? github.com/bnema/dumber/internal/domain/repository [no test files]
- ? github.com/bnema/dumber/internal/domain/repository/mocks [no test files]
- ? github.com/bnema/dumber/internal/domain/service [no test files]
- === RUN TestNormalize
- === RUN TestNormalize/empty_string
- === RUN TestNormalize/http_scheme_unchanged
- === RUN TestNormalize/https_scheme_unchanged
- === RUN TestNormalize/file_scheme_unchanged
- === RUN TestNormalize/dumb_scheme_unchanged
- === RUN TestNormalize/about_scheme_unchanged
- === RUN TestNormalize/mailto_scheme_unchanged
- === RUN TestNormalize/magnet_scheme_unchanged
- === RUN TestNormalize/obsidian_scheme_unchanged
- === RUN TestNormalize/domain_gets_https
- === RUN TestNormalize/domain_with_path_gets_https
- === RUN TestNormalize/search_query_unchanged
- === RUN TestNormalize/single_word_unchanged
- === RUN TestNormalize/localhost
- === RUN TestNormalize/localhost_with_port
- === RUN TestNormalize/localhost_with_alt_port
- === RUN TestNormalize/localhost_with_path
- === RUN TestNormalize/localhost.com_is_a_domain_not_localhost
- === RUN TestNormalize/localhostevil.com_is_a_domain_not_localhost
- --- PASS: TestNormalize (0.00s)
- --- PASS: TestNormalize/empty_string (0.00s)
- --- PASS: TestNormalize/http_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/https_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/file_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/dumb_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/about_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/mailto_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/magnet_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/obsidian_scheme_unchanged (0.00s)
- --- PASS: TestNormalize/domain_gets_https (0.00s)
- --- PASS: TestNormalize/domain_with_path_gets_https (0.00s)
- --- PASS: TestNormalize/search_query_unchanged (0.00s)
- --- PASS: TestNormalize/single_word_unchanged (0.00s)
- --- PASS: TestNormalize/localhost (0.00s)
- --- PASS: TestNormalize/localhost_with_port (0.00s)
- --- PASS: TestNormalize/localhost_with_alt_port (0.00s)
- --- PASS: TestNormalize/localhost_with_path (0.00s)
- --- PASS: TestNormalize/localhost.com_is_a_domain_not_localhost (0.00s)
- --- PASS: TestNormalize/localhostevil.com_is_a_domain_not_localhost (0.00s)
- === RUN TestNormalize_PathLikeInputsArePure
- === RUN TestNormalize_PathLikeInputsArePure/absolute_path
- === RUN TestNormalize_PathLikeInputsArePure/relative_path_with_dot
- === RUN TestNormalize_PathLikeInputsArePure/relative_parent_path
- === RUN TestNormalize_PathLikeInputsArePure/home_path
- --- PASS: TestNormalize_PathLikeInputsArePure (0.00s)
- --- PASS: TestNormalize_PathLikeInputsArePure/absolute_path (0.00s)
- --- PASS: TestNormalize_PathLikeInputsArePure/relative_path_with_dot (0.00s)
- --- PASS: TestNormalize_PathLikeInputsArePure/relative_parent_path (0.00s)
- --- PASS: TestNormalize_PathLikeInputsArePure/home_path (0.00s)
- === RUN TestTrimLeadingSpacesIfURL
- === RUN TestTrimLeadingSpacesIfURL/single_space_before_https_URL
- === RUN TestTrimLeadingSpacesIfURL/multiple_spaces_before_https_URL
- === RUN TestTrimLeadingSpacesIfURL/tab_before_URL
- === RUN TestTrimLeadingSpacesIfURL/mixed_whitespace_before_URL
- === RUN TestTrimLeadingSpacesIfURL/space_before_domain
- === RUN TestTrimLeadingSpacesIfURL/spaces_before_localhost
- === RUN TestTrimLeadingSpacesIfURL/no_leading_space_URL_unchanged
- === RUN TestTrimLeadingSpacesIfURL/search_query_with_leading_space_unchanged
- === RUN TestTrimLeadingSpacesIfURL/single_word_with_leading_space_unchanged
- === RUN TestTrimLeadingSpacesIfURL/empty_string_unchanged
- === RUN TestTrimLeadingSpacesIfURL/only_spaces_unchanged
- --- PASS: TestTrimLeadingSpacesIfURL (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/single_space_before_https_URL (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/multiple_spaces_before_https_URL (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/tab_before_URL (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/mixed_whitespace_before_URL (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/space_before_domain (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/spaces_before_localhost (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/no_leading_space_URL_unchanged (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/search_query_with_leading_space_unchanged (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/single_word_with_leading_space_unchanged (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/empty_string_unchanged (0.00s)
- --- PASS: TestTrimLeadingSpacesIfURL/only_spaces_unchanged (0.00s)
- === RUN TestLooksLikeURL
- === RUN TestLooksLikeURL/empty_string
- === RUN TestLooksLikeURL/http_URL
- === RUN TestLooksLikeURL/https_URL
- === RUN TestLooksLikeURL/file_URL
- === RUN TestLooksLikeURL/dumb_URL
- === RUN TestLooksLikeURL/obsidian_URL
- === RUN TestLooksLikeURL/about_URL
- === RUN TestLooksLikeURL/spotify_URL
- === RUN TestLooksLikeURL/mailto_URL
- === RUN TestLooksLikeURL/magnet_URL
- === RUN TestLooksLikeURL/vscode_URL
- === RUN TestLooksLikeURL/domain
- === RUN TestLooksLikeURL/domain_with_path
- === RUN TestLooksLikeURL/search_query
- === RUN TestLooksLikeURL/single_word
- === RUN TestLooksLikeURL/localhost
- === RUN TestLooksLikeURL/localhost_with_port
- === RUN TestLooksLikeURL/localhost_with_alt_port
- === RUN TestLooksLikeURL/localhost_with_path
- === RUN TestLooksLikeURL/localhost.com_is_a_domain_not_localhost
- === RUN TestLooksLikeURL/localhostevil.com_is_a_domain_not_localhost
- === RUN TestLooksLikeURL/ipv4_with_port
- === RUN TestLooksLikeURL/ipv4
- === RUN TestLooksLikeURL/ipv6_bracketed
- --- PASS: TestLooksLikeURL (0.00s)
- --- PASS: TestLooksLikeURL/empty_string (0.00s)
- --- PASS: TestLooksLikeURL/http_URL (0.00s)
- --- PASS: TestLooksLikeURL/https_URL (0.00s)
- --- PASS: TestLooksLikeURL/file_URL (0.00s)
- --- PASS: TestLooksLikeURL/dumb_URL (0.00s)
- --- PASS: TestLooksLikeURL/obsidian_URL (0.00s)
- --- PASS: TestLooksLikeURL/about_URL (0.00s)
- --- PASS: TestLooksLikeURL/spotify_URL (0.00s)
- --- PASS: TestLooksLikeURL/mailto_URL (0.00s)
- --- PASS: TestLooksLikeURL/magnet_URL (0.00s)
- --- PASS: TestLooksLikeURL/vscode_URL (0.00s)
- --- PASS: TestLooksLikeURL/domain (0.00s)
- --- PASS: TestLooksLikeURL/domain_with_path (0.00s)
- --- PASS: TestLooksLikeURL/search_query (0.00s)
- --- PASS: TestLooksLikeURL/single_word (0.00s)
- --- PASS: TestLooksLikeURL/localhost (0.00s)
- --- PASS: TestLooksLikeURL/localhost_with_port (0.00s)
- --- PASS: TestLooksLikeURL/localhost_with_alt_port (0.00s)
- --- PASS: TestLooksLikeURL/localhost_with_path (0.00s)
- --- PASS: TestLooksLikeURL/localhost.com_is_a_domain_not_localhost (0.00s)
- --- PASS: TestLooksLikeURL/localhostevil.com_is_a_domain_not_localhost (0.00s)
- --- PASS: TestLooksLikeURL/ipv4_with_port (0.00s)
- --- PASS: TestLooksLikeURL/ipv4 (0.00s)
- --- PASS: TestLooksLikeURL/ipv6_bracketed (0.00s)
- === RUN TestNormalize_IPAddressGetsHTTPByDefault
- === RUN TestNormalize_IPAddressGetsHTTPByDefault/tailnet_ipv4
- === RUN TestNormalize_IPAddressGetsHTTPByDefault/tailnet_ipv4_with_port
- === RUN TestNormalize_IPAddressGetsHTTPByDefault/ipv4_with_path
- --- PASS: TestNormalize_IPAddressGetsHTTPByDefault (0.00s)
- --- PASS: TestNormalize_IPAddressGetsHTTPByDefault/tailnet_ipv4 (0.00s)
- --- PASS: TestNormalize_IPAddressGetsHTTPByDefault/tailnet_ipv4_with_port (0.00s)
- --- PASS: TestNormalize_IPAddressGetsHTTPByDefault/ipv4_with_path (0.00s)
- === RUN TestSanitizeDomainForPNGPathKeysDoNotCollide
- --- PASS: TestSanitizeDomainForPNGPathKeysDoNotCollide (0.00s)
- === RUN TestSanitizeDomainForLongPathKeysUsesBoundedDeterministicFilenames
- --- PASS: TestSanitizeDomainForLongPathKeysUsesBoundedDeterministicFilenames (0.00s)
- === RUN TestIsExternalScheme
- === RUN TestIsExternalScheme/empty_string
- === RUN TestIsExternalScheme/http_scheme
- === RUN TestIsExternalScheme/https_scheme
- === RUN TestIsExternalScheme/file_scheme
- === RUN TestIsExternalScheme/dumb_scheme
- === RUN TestIsExternalScheme/about_scheme
- === RUN TestIsExternalScheme/data_scheme
- === RUN TestIsExternalScheme/blob_scheme
- === RUN TestIsExternalScheme/javascript_scheme
- === RUN TestIsExternalScheme/vscode_scheme
- === RUN TestIsExternalScheme/spotify_scheme
- === RUN TestIsExternalScheme/steam_scheme
- === RUN TestIsExternalScheme/uppercase_HTTP_scheme
- === RUN TestIsExternalScheme/uppercase_ABOUT_scheme
- === RUN TestIsExternalScheme/uppercase_VSCODE_scheme
- === RUN TestIsExternalScheme/geo_scheme
- === RUN TestIsExternalScheme/xmpp_scheme
- === RUN TestIsExternalScheme/malformed_URL
- === RUN TestIsExternalScheme/no_scheme
- === RUN TestIsExternalScheme/localhost_port_is_not_external_scheme
- === RUN TestIsExternalScheme/scheme_only
- --- PASS: TestIsExternalScheme (0.00s)
- --- PASS: TestIsExternalScheme/empty_string (0.00s)
- --- PASS: TestIsExternalScheme/http_scheme (0.00s)
- --- PASS: TestIsExternalScheme/https_scheme (0.00s)
- --- PASS: TestIsExternalScheme/file_scheme (0.00s)
- --- PASS: TestIsExternalScheme/dumb_scheme (0.00s)
- --- PASS: TestIsExternalScheme/about_scheme (0.00s)
- --- PASS: TestIsExternalScheme/data_scheme (0.00s)
- --- PASS: TestIsExternalScheme/blob_scheme (0.00s)
- --- PASS: TestIsExternalScheme/javascript_scheme (0.00s)
- --- PASS: TestIsExternalScheme/vscode_scheme (0.00s)
- --- PASS: TestIsExternalScheme/spotify_scheme (0.00s)
- --- PASS: TestIsExternalScheme/steam_scheme (0.00s)
- --- PASS: TestIsExternalScheme/uppercase_HTTP_scheme (0.00s)
- --- PASS: TestIsExternalScheme/uppercase_ABOUT_scheme (0.00s)
- --- PASS: TestIsExternalScheme/uppercase_VSCODE_scheme (0.00s)
- --- PASS: TestIsExternalScheme/geo_scheme (0.00s)
- --- PASS: TestIsExternalScheme/xmpp_scheme (0.00s)
- --- PASS: TestIsExternalScheme/malformed_URL (0.00s)
- --- PASS: TestIsExternalScheme/no_scheme (0.00s)
- --- PASS: TestIsExternalScheme/localhost_port_is_not_external_scheme (0.00s)
- --- PASS: TestIsExternalScheme/scheme_only (0.00s)
- === RUN TestExtractOrigin_ValidURI
- === RUN TestExtractOrigin_ValidURI/https_with_port
- === RUN TestExtractOrigin_ValidURI/https_without_port
- === RUN TestExtractOrigin_ValidURI/http
- === RUN TestExtractOrigin_ValidURI/uppercase_host
- === RUN TestExtractOrigin_ValidURI/uppercase_scheme
- === RUN TestExtractOrigin_ValidURI/https_default_port_omitted
- === RUN TestExtractOrigin_ValidURI/http_default_port_omitted
- === RUN TestExtractOrigin_ValidURI/https_explicit_non-default_port_kept
- === RUN TestExtractOrigin_ValidURI/mixed_case_with_default_port
- === RUN TestExtractOrigin_ValidURI/ipv6_with_explicit_port
- --- PASS: TestExtractOrigin_ValidURI (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/https_with_port (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/https_without_port (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/http (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/uppercase_host (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/uppercase_scheme (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/https_default_port_omitted (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/http_default_port_omitted (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/https_explicit_non-default_port_kept (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/mixed_case_with_default_port (0.00s)
- --- PASS: TestExtractOrigin_ValidURI/ipv6_with_explicit_port (0.00s)
- === RUN TestExtractOrigin_InvalidURI
- === RUN TestExtractOrigin_InvalidURI/empty
- === RUN TestExtractOrigin_InvalidURI/no_scheme
- === RUN TestExtractOrigin_InvalidURI/no_host
- --- PASS: TestExtractOrigin_InvalidURI (0.00s)
- --- PASS: TestExtractOrigin_InvalidURI/empty (0.00s)
- --- PASS: TestExtractOrigin_InvalidURI/no_scheme (0.00s)
- --- PASS: TestExtractOrigin_InvalidURI/no_host (0.00s)
- === RUN TestCanonicalDomain
- === RUN TestCanonicalDomain/empty
- === RUN TestCanonicalDomain/whitespace_only
- === RUN TestCanonicalDomain/url
- === RUN TestCanonicalDomain/url_with_port
- === RUN TestCanonicalDomain/url_with_userinfo
- === RUN TestCanonicalDomain/url_with_userinfo_and_port
- === RUN TestCanonicalDomain/domain
- === RUN TestCanonicalDomain/domain_with_path
- --- PASS: TestCanonicalDomain (0.00s)
- --- PASS: TestCanonicalDomain/empty (0.00s)
- --- PASS: TestCanonicalDomain/whitespace_only (0.00s)
- --- PASS: TestCanonicalDomain/url (0.00s)
- --- PASS: TestCanonicalDomain/url_with_port (0.00s)
- --- PASS: TestCanonicalDomain/url_with_userinfo (0.00s)
- --- PASS: TestCanonicalDomain/url_with_userinfo_and_port (0.00s)
- --- PASS: TestCanonicalDomain/domain (0.00s)
- --- PASS: TestCanonicalDomain/domain_with_path (0.00s)
- === RUN TestDisplayDomain
- === RUN TestDisplayDomain/empty
- === RUN TestDisplayDomain/whitespace_only
- === RUN TestDisplayDomain/url_with_port
- === RUN TestDisplayDomain/url_without_port
- === RUN TestDisplayDomain/url_with_userinfo
- === RUN TestDisplayDomain/no_www_prefix
- === RUN TestDisplayDomain/host_only
- === RUN TestDisplayDomain/invalid_url
- === RUN TestDisplayDomain/non-http_scheme
- === RUN TestDisplayDomain/ipv6_url
- === RUN TestDisplayDomain/uppercase_host
- --- PASS: TestDisplayDomain (0.00s)
- --- PASS: TestDisplayDomain/empty (0.00s)
- --- PASS: TestDisplayDomain/whitespace_only (0.00s)
- --- PASS: TestDisplayDomain/url_with_port (0.00s)
- --- PASS: TestDisplayDomain/url_without_port (0.00s)
- --- PASS: TestDisplayDomain/url_with_userinfo (0.00s)
- --- PASS: TestDisplayDomain/no_www_prefix (0.00s)
- --- PASS: TestDisplayDomain/host_only (0.00s)