1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2026-03-31 00:40:08 +02:00
Files
app/tests/unit/Parsers/HomebrewUpgradableTest.swift

62 lines
2.5 KiB
Swift

//
// HomebrewTest.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 17/03/2023.
// Copyright © 2023 Nico Verbruggen. All rights reserved.
//
import Testing
import Foundation
struct HomebrewUpgradableTest {
var container: Container
init() throws {
container = Container.fake(
shell: [
"/opt/homebrew/bin/brew update >/dev/null && /opt/homebrew/bin/brew outdated --json --formulae"
: .instant(try! String(contentsOf: Self.outdatedFileUrl)),
"/opt/homebrew/bin/php --ini | grep -E -o '(/[^ ]+\\.ini)'"
: .instant("/opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini"),
"/opt/homebrew/opt/php@8.1.16/bin/php --ini | grep -E -o '(/[^ ]+\\.ini)'"
: .instant("/opt/homebrew/etc/php/8.1/conf.d/php-memory-limits.ini"),
"/opt/homebrew/opt/php@8.2.3/bin/php --ini | grep -E -o '(/[^ ]+\\.ini)'"
: .instant("/opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini"),
"/opt/homebrew/opt/php@7.4.11/bin/php --ini | grep -E -o '(/[^ ]+\\.ini)'"
: .instant("/opt/homebrew/etc/php/7.4/conf.d/php-memory-limits.ini")
],
files: [
"/opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini": .fake(.text),
"/opt/homebrew/etc/php/8.1/conf.d/php-memory-limits.ini": .fake(.text),
"/opt/homebrew/etc/php/7.4/conf.d/php-memory-limits.ini": .fake(.text)
]
)
}
static var outdatedFileUrl: URL {
return TestBundle.url(forResource: "brew-outdated", withExtension: "json")!
}
@Test func upgradable_php_versions_can_be_determined() async throws {
// This config file assumes our PHP alias (`php`) is v8.2
PhpEnvironments.brewPhpAlias = "8.2"
let env = container.phpEnvs!
env.cachedPhpInstallations = [
"8.1": PhpInstallation(container, "8.1.16"),
"8.2": PhpInstallation(container, "8.2.3"),
"7.4": PhpInstallation(container, "7.4.11")
]
let data = await BrewPhpFormulaeHandler(container: container)
.loadPhpVersions(loadOutdated: true)
#expect(true == data.contains(where: { formula in
formula.installedVersion == "8.1.16" && formula.upgradeVersion == "8.1.17"
}))
#expect(true == data.contains(where: { formula in
formula.installedVersion == "8.2.3" && formula.upgradeVersion == "8.2.4"
}))
}
}