mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-09-19 05:00:48 +00:00
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.
48 lines
1.5 KiB
Swift
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
|