Spaces:
Running
Running
| import Foundation | |
| import Testing | |
| @testable import OpenClaw | |
| (.serialized) | |
| struct CLIInstallerTests { | |
| func installedLocationFindsExecutable() throws { | |
| let fm = FileManager() | |
| let root = fm.temporaryDirectory.appendingPathComponent( | |
| "openclaw-cli-installer-\(UUID().uuidString)") | |
| defer { try? fm.removeItem(at: root) } | |
| let binDir = root.appendingPathComponent("bin") | |
| try fm.createDirectory(at: binDir, withIntermediateDirectories: true) | |
| let cli = binDir.appendingPathComponent("openclaw") | |
| fm.createFile(atPath: cli.path, contents: Data()) | |
| try fm.setAttributes([.posixPermissions: 0o755], ofItemAtPath: cli.path) | |
| let found = CLIInstaller.installedLocation( | |
| searchPaths: [binDir.path], | |
| fileManager: fm) | |
| #expect(found == cli.path) | |
| try fm.removeItem(at: cli) | |
| fm.createFile(atPath: cli.path, contents: Data()) | |
| try fm.setAttributes([.posixPermissions: 0o644], ofItemAtPath: cli.path) | |
| let missing = CLIInstaller.installedLocation( | |
| searchPaths: [binDir.path], | |
| fileManager: fm) | |
| #expect(missing == nil) | |
| } | |
| } | |