feat: Adds more tests for cli-client.

This commit is contained in:
2024-12-11 17:03:43 -05:00
parent c1a14ea855
commit d9e91538fb
3 changed files with 79 additions and 103 deletions

View File

@@ -1,6 +1,7 @@
import CliClient
@_spi(Internal) import CliClient
import ConfigurationClient
import Dependencies
import FileClient
import Foundation
import ShellClient
import Testing
@@ -91,6 +92,70 @@ struct CliClientTests: TestCase {
}
}
@Test
func ensuredPlaybookDirectory() throws {
let configuration = Configuration.mock
let playbookDir = try configuration.ensuredPlaybookDirectory("playbook")
#expect(playbookDir == "playbook")
do {
_ = try configuration.ensuredPlaybookDirectory(nil)
#expect(Bool(false))
} catch {
#expect(Bool(true))
}
}
@Test
func shellOrDefault() {
var shell: String? = "/bin/bash"
#expect(shell.orDefault == .custom(path: "/bin/bash", useDashC: true))
shell = nil
#expect(shell.orDefault == .zsh(useDashC: true))
}
@Test
func testEnsuredInventoryPath() {
let configuration = Configuration(playbook: .init(inventory: "inventory.ini"))
let playbookDir = "playbook"
let inventoryPath = "inventory.ini"
var output = ensuredInventoryPath(
inventoryPath,
configuration: configuration,
playbookDirectory: playbookDir
)
#expect(output == "inventory.ini")
output = ensuredInventoryPath(
nil,
configuration: configuration,
playbookDirectory: playbookDir
)
#expect(output == "inventory.ini")
}
@Test
func vaultFilePath() async throws {
var fileClient = FileClient.testValue
fileClient.findVaultFileInCurrentDirectory = { URL(string: "vault.yml") }
var output = try await fileClient.ensuredVaultFilePath("vault.yml")
#expect(output == "vault.yml")
output = try await fileClient.ensuredVaultFilePath(nil)
fileClient.findVaultFileInCurrentDirectory = { nil }
do {
_ = try await fileClient.ensuredVaultFilePath(nil)
#expect(Bool(false))
} catch {
#expect(Bool(true))
}
}
func withMockConfiguration(
_ capturing: CliClient.CapturingClient,
configuration: Configuration = .mock,