1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00

Add UI test for PHP version manager

This commit is contained in:
2023-09-10 11:14:38 +02:00
parent f5d0ad20cd
commit e40b9fe45a
4 changed files with 55 additions and 7 deletions

View File

@ -160,6 +160,22 @@ class TestableConfigurations {
: .delayed(0.2, "OK"),
"ln -sF ~/.config/valet/valet82.sock ~/.config/valet/valet.sock"
: .instant("OK"),
"/opt/homebrew/bin/brew update >/dev/null && /opt/homebrew/bin/brew outdated --json --formulae": .delayed(2.0, """
{
"formulae": [
{
"name": "php",
"installed_versions": [
"8.2.6"
],
"current_version": "8.2.11",
"pinned": false,
"pinned_version": null
}
],
"casks": []
}
""")
],
commandOutput: [
"/opt/homebrew/bin/php -r echo ini_get('memory_limit');": "512M",
@ -173,7 +189,7 @@ class TestableConfigurations {
.automaticBackgroundUpdateCheck: false
],
phpVersions: [
VersionNumber(major: 8, minor: 2, patch: 0),
VersionNumber(major: 8, minor: 2, patch: 6),
VersionNumber(major: 8, minor: 1, patch: 0),
VersionNumber(major: 8, minor: 0, patch: 0)
]

View File

@ -71,6 +71,31 @@ final class MainMenuTest: UITestCase {
click(app.buttons["Notifications"])
}
final func test_can_open_php_version_manager() throws {
let app = launch(openMenu: true)
app.mainMenuItem(withText: "mi_php_version_manager".localized).click()
// Should display loader
assertExists(app.staticTexts["phpman.busy.title".localized], 1)
// After loading, should display PHP 8.2
assertExists(app.staticTexts["PHP 8.2"], 5)
// Should also display pre-release version
assertExists(app.staticTexts["PHP 8.3"])
assertExists(app.staticTexts["phpman.version.prerelease".localized.uppercased()])
assertExists(app.staticTexts["phpman.version.available_for_installation".localized])
// But not PHP 8.4 (yet)
assertNotExists(app.staticTexts["PHP 8.4"])
// Also, PHP 8.2 should have an update available
assertExists(app.staticTexts["phpman.version.has_update".localized(
"8.2.6",
"8.2.11"
)], 5)
}
final func test_can_quit_app() throws {
let app = launch(openMenu: true)
app.mainMenuItem(withText: "mi_quit".localized).click()