35 lines
1.2 KiB
Swift
35 lines
1.2 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import Clawdbot
|
|
|
|
@Suite(.serialized)
|
|
@MainActor
|
|
struct CLIInstallerTests {
|
|
@Test func installedLocationFindsExecutable() throws {
|
|
let fm = FileManager.default
|
|
let root = fm.temporaryDirectory.appendingPathComponent(
|
|
"clawdbot-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("clawdbot")
|
|
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)
|
|
}
|
|
}
|