44 lines
1.5 KiB
Swift
44 lines
1.5 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import Clawdbot
|
|
|
|
struct SystemRunAllowlistTests {
|
|
@Test func matchUsesResolvedPath() {
|
|
let entry = SystemRunAllowlistEntry(pattern: "/opt/homebrew/bin/rg", enabled: true, matchKind: .glob)
|
|
let resolution = SystemRunCommandResolution(
|
|
rawExecutable: "rg",
|
|
resolvedPath: "/opt/homebrew/bin/rg",
|
|
executableName: "rg",
|
|
cwd: nil)
|
|
let match = SystemRunAllowlistStore.match(
|
|
command: ["rg"],
|
|
resolution: resolution,
|
|
entries: [entry])
|
|
#expect(match?.id == entry.id)
|
|
}
|
|
|
|
@Test func matchUsesBasenameForSimplePattern() {
|
|
let entry = SystemRunAllowlistEntry(pattern: "rg", enabled: true, matchKind: .glob)
|
|
let resolution = SystemRunCommandResolution(
|
|
rawExecutable: "rg",
|
|
resolvedPath: "/opt/homebrew/bin/rg",
|
|
executableName: "rg",
|
|
cwd: nil)
|
|
let match = SystemRunAllowlistStore.match(
|
|
command: ["rg"],
|
|
resolution: resolution,
|
|
entries: [entry])
|
|
#expect(match?.id == entry.id)
|
|
}
|
|
|
|
@Test func matchUsesLegacyArgvKey() {
|
|
let key = SystemRunAllowlist.legacyKey(for: ["echo", "hi"])
|
|
let entry = SystemRunAllowlistEntry(pattern: key, enabled: true, matchKind: .argv)
|
|
let match = SystemRunAllowlistStore.match(
|
|
command: ["echo", "hi"],
|
|
resolution: nil,
|
|
entries: [entry])
|
|
#expect(match?.id == entry.id)
|
|
}
|
|
}
|