feat: add AppSettings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user