mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
47 lines
1.5 KiB
Swift
47 lines
1.5 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import OpenClaw
|
|
|
|
@Suite(.serialized)
|
|
struct NixModeStableSuiteTests {
|
|
@Test func `resolves from stable suite for app bundles`() throws {
|
|
let suite = try #require(UserDefaults(suiteName: launchdLabel))
|
|
let key = "openclaw.nixMode"
|
|
let prev = suite.object(forKey: key)
|
|
defer {
|
|
if let prev { suite.set(prev, forKey: key) } else { suite.removeObject(forKey: key) }
|
|
}
|
|
|
|
suite.set(true, forKey: key)
|
|
|
|
let standard = try #require(UserDefaults(suiteName: "NixModeStableSuiteTests.\(UUID().uuidString)"))
|
|
#expect(!standard.bool(forKey: key))
|
|
|
|
let resolved = ProcessInfo.resolveNixMode(
|
|
environment: [:],
|
|
standard: standard,
|
|
stableSuite: suite,
|
|
isAppBundle: true)
|
|
#expect(resolved)
|
|
}
|
|
|
|
@Test func `ignores stable suite outside app bundles`() throws {
|
|
let suite = try #require(UserDefaults(suiteName: launchdLabel))
|
|
let key = "openclaw.nixMode"
|
|
let prev = suite.object(forKey: key)
|
|
defer {
|
|
if let prev { suite.set(prev, forKey: key) } else { suite.removeObject(forKey: key) }
|
|
}
|
|
|
|
suite.set(true, forKey: key)
|
|
let standard = try #require(UserDefaults(suiteName: "NixModeStableSuiteTests.\(UUID().uuidString)"))
|
|
|
|
let resolved = ProcessInfo.resolveNixMode(
|
|
environment: [:],
|
|
standard: standard,
|
|
stableSuite: suite,
|
|
isAppBundle: false)
|
|
#expect(!resolved)
|
|
}
|
|
}
|