import Testing @testable import Clawdbot @Suite(.serialized) @MainActor struct ConfigStoreTests { @Test func loadUsesRemoteInRemoteMode() async { var localHit = false var remoteHit = false await ConfigStore._testSetOverrides(.init( isRemoteMode: { true }, loadLocal: { localHit = true; return ["local": true] }, loadRemote: { remoteHit = true; return ["remote": true] })) let result = await ConfigStore.load() await ConfigStore._testClearOverrides() #expect(remoteHit) #expect(!localHit) #expect(result["remote"] as? Bool == true) } @Test func loadUsesLocalInLocalMode() async { var localHit = false var remoteHit = false await ConfigStore._testSetOverrides(.init( isRemoteMode: { false }, loadLocal: { localHit = true; return ["local": true] }, loadRemote: { remoteHit = true; return ["remote": true] })) let result = await ConfigStore.load() await ConfigStore._testClearOverrides() #expect(localHit) #expect(!remoteHit) #expect(result["local"] as? Bool == true) } @Test func saveRoutesToRemoteInRemoteMode() async throws { var localHit = false var remoteHit = false await ConfigStore._testSetOverrides(.init( isRemoteMode: { true }, saveLocal: { _ in localHit = true }, saveRemote: { _ in remoteHit = true })) try await ConfigStore.save(["remote": true]) await ConfigStore._testClearOverrides() #expect(remoteHit) #expect(!localHit) } @Test func saveRoutesToLocalInLocalMode() async throws { var localHit = false var remoteHit = false await ConfigStore._testSetOverrides(.init( isRemoteMode: { false }, saveLocal: { _ in localHit = true }, saveRemote: { _ in remoteHit = true })) try await ConfigStore.save(["local": true]) await ConfigStore._testClearOverrides() #expect(localHit) #expect(!remoteHit) } }