Aanish Bhirudfeat: add Crof providerc7276846 months agoHistory
52 lines · 1.9 KB · Swift
RawDownload
import CodexBarCoreimport Foundationimport Testing@testable import CodexBar @MainActorstruct CrofProviderImplementationTests {    @Test    func `availability uses crof environment token`() throws {        let settings = try Self.makeSettings(suite: "CrofProviderImplementationTests-env")        let implementation = CrofProviderImplementation()         let context = ProviderAvailabilityContext(            provider: .crof,            settings: settings,            environment: [CrofSettingsReader.apiKeyEnvironmentKeys[0]: "env-token"])         #expect(implementation.isAvailable(context: context))    }     @Test    func `availability uses stored crof API token`() throws {        let settings = try Self.makeSettings(suite: "CrofProviderImplementationTests-settings")        settings.crofAPIToken = "stored-token"        let implementation = CrofProviderImplementation()         let context = ProviderAvailabilityContext(provider: .crof, settings: settings, environment: [:])         #expect(implementation.isAvailable(context: context))    }     @Test    func `availability rejects missing crof API token`() throws {        let settings = try Self.makeSettings(suite: "CrofProviderImplementationTests-missing")        settings.crofAPIToken = "   "        let implementation = CrofProviderImplementation()         let context = ProviderAvailabilityContext(provider: .crof, settings: settings, environment: [:])         #expect(!implementation.isAvailable(context: context))    }     private static func makeSettings(suite: String) throws -> SettingsStore {        let defaults = try #require(UserDefaults(suiteName: suite))        defaults.removePersistentDomain(forName: suite)        return SettingsStore(            userDefaults: defaults,            configStore: testConfigStore(suiteName: suite),            zaiTokenStore: NoopZaiTokenStore(),            syntheticTokenStore: NoopSyntheticTokenStore())    }}