feat: add AppSettings

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-01 15:32:30 +02:00
co-authored by Claude Sonnet 5.5
parent 6f491accf1
commit fbc90cbd12
2 changed files with 83 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
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)
}
}