mirror of
https://github.com/aculix/knotchy.git
synced 2026-10-27 07:15:53 +00:00
35 lines
1.7 KiB
Swift
35 lines
1.7 KiB
Swift
import Testing
|
|
@testable import KnotchyCore
|
|
|
|
struct ContainerRuntimeTests {
|
|
@Test func readsTheVersionFromTheCLIOutput() {
|
|
#expect(ContainerRuntime.version(in: "container CLI version 1.4.1 (build: release, commit: 9a8917c)\n") == "1.4.1")
|
|
#expect(ContainerRuntime.version(in: "warning: x\ncontainer CLI version 2.0 (build: debug)") == "2.0")
|
|
#expect(ContainerRuntime.version(in: "container version 1.4.1") == nil)
|
|
}
|
|
|
|
@Test func comparesVersionsNumerically() {
|
|
#expect(ContainerRuntime.isOlder("1.3.9", than: "1.4.0"))
|
|
#expect(ContainerRuntime.isOlder("1.4", than: "1.4.1"))
|
|
#expect(!ContainerRuntime.isOlder("1.10.0", than: "1.4.0"))
|
|
#expect(!ContainerRuntime.isOlder("1.4.0", than: "1.4"))
|
|
}
|
|
|
|
@Test func judgesAnInstalledRuntime() {
|
|
#expect(ContainerRuntime.status(versionOutput: nil) == .missing)
|
|
#expect(ContainerRuntime.status(versionOutput: "container CLI version 1.3.1 (build: release)") == .outdated("1.3.1"))
|
|
#expect(ContainerRuntime.status(versionOutput: "container CLI version 1.4.1 (build: release)") == .current("1.4.1"))
|
|
#expect(ContainerRuntime.status(versionOutput: "container CLI version 9.0.0") == .current("9.0.0"))
|
|
}
|
|
|
|
@Test func unreadableOutputNeverTriggersAnUpdate() {
|
|
#expect(ContainerRuntime.status(versionOutput: "container 3 (a new format)") == .current(nil))
|
|
#expect(ContainerRuntime.status(versionOutput: "") == .current(nil))
|
|
}
|
|
|
|
@Test func thePinnedReleaseIsNewEnough() {
|
|
#expect(!ContainerRuntime.isOlder(ContainerRuntime.pinned.version, than: ContainerRuntime.minimumVersion))
|
|
#expect(ContainerRuntime.pinned.sha256.count == 64)
|
|
}
|
|
}
|