import Foundation import Testing @testable import SstData struct AppSettingsTests { func freshDefaults() -> UserDefaults { let name = "sst-tests-\(UUID().uuidString)" let defaults = UserDefaults(suiteName: name)! defaults.removePersistentDomain(forName: name) return defaults } @Test func defaultsMatchTheSpec() { let settings = AppSettings(defaults: freshDefaults()) #expect(settings.hotkeyID == "fn") #expect(settings.modelVariant == "large-v3-v20240930_turbo") #expect(settings.keepHistory) #expect(settings.usePriming) #expect(settings.useCorrection) } @Test func changesArePersisted() { let defaults = freshDefaults() let settings = AppSettings(defaults: defaults) settings.hotkeyID = "rightOption" settings.modelVariant = "small" settings.keepHistory = false settings.usePriming = false settings.useCorrection = false let reloaded = AppSettings(defaults: defaults) #expect(reloaded.hotkeyID == "rightOption") #expect(reloaded.modelVariant == "small") #expect(!reloaded.keepHistory) #expect(!reloaded.usePriming) #expect(!reloaded.useCorrection) } }