39 lines
1.2 KiB
Swift
39 lines
1.2 KiB
Swift
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)
|
|
}
|
|
}
|