bitchat/bitchatTests/MacKeepRunningSettingsTests.swift
Taksh e3a65f5d7c fix(macOS): opt-in keep running when window is closed
Closing the last window quits by default so Tor and BLE stop; users who want dock relaying can enable it in settings. App Nap keep-alive stays gated on minimize/occlusion plus active transports.
2026-09-12 08:07:04 +05:30

48 lines
1.5 KiB
Swift

//
// MacKeepRunningSettingsTests.swift
// bitchatTests
//
// This is free and unencumbered software released into the public domain.
// For more information, see <https://unlicense.org>
//
#if os(macOS)
import Foundation
import Testing
@testable import bitchat
struct MacKeepRunningSettingsTests {
private func isolatedDefaults() -> UserDefaults {
let suite = "MacKeepRunningSettingsTests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suite)!
defaults.removePersistentDomain(forName: suite)
return defaults
}
@Test("Closing the last window quits by default")
func defaultQuitsOnLastWindowClose() {
let defaults = isolatedDefaults()
#expect(!MacKeepRunningSettings.enabled(in: defaults))
#expect(MacKeepRunningSettings.shouldTerminateAfterLastWindowClosed(in: defaults))
}
@Test("Opt-in keeps the process alive after the last window closes")
func optInSurvivesLastWindowClose() {
let defaults = isolatedDefaults()
MacKeepRunningSettings.setEnabled(true, in: defaults)
#expect(MacKeepRunningSettings.enabled(in: defaults))
#expect(!MacKeepRunningSettings.shouldTerminateAfterLastWindowClosed(in: defaults))
}
@Test("Reset restores quit-on-close")
func resetRestoresDefault() {
let defaults = isolatedDefaults()
MacKeepRunningSettings.setEnabled(true, in: defaults)
MacKeepRunningSettings.reset(in: defaults)
#expect(MacKeepRunningSettings.shouldTerminateAfterLastWindowClosed(in: defaults))
}
}
#endif