Fix integration tests for Xcode 26

This commit is contained in:
Stefan Ceriu
2025-09-22 19:27:32 +03:00
parent a607e992c1
commit 4e27af3c36
3 changed files with 8 additions and 8 deletions

View File

@@ -9,7 +9,7 @@ on:
jobs: jobs:
integration_tests: integration_tests:
name: Integration Tests name: Integration Tests
runs-on: macos-26 runs-on: macos-26-xlarge
concurrency: concurrency:
# Only allow a single run of this workflow on each branch, automatically cancelling older runs. # Only allow a single run of this workflow on each branch, automatically cancelling older runs.

View File

@@ -57,25 +57,25 @@ extension XCUIApplication {
} }
if alerts.count > 0 { if alerts.count > 0 {
alerts.firstMatch.buttons["OK"].tap() alerts.firstMatch.buttons["OK"].firstMatch.tap()
} }
} }
webAuthenticationSessionAlertContinueButton.tap(.center) webAuthenticationSessionAlertContinueButton.tap(.center)
let webAuthenticationView = webViews.firstMatch let webAuthenticationView = XCUIApplication(bundleIdentifier: "com.apple.SafariViewService")
XCTAssertTrue(webAuthenticationView.waitForExistence(timeout: 10.0)) XCTAssertTrue(webAuthenticationView.waitForExistence(timeout: 10.0))
webAuthenticationView.tap(.top) // Tap the web view to properly focus the app again. webAuthenticationView.tap(.top) // Tap the web view to properly focus the app again.
let webUsernameTextField = textFields["Username or Email"] let webUsernameTextField = textFields["Username or Email"]
XCTAssertTrue(webUsernameTextField.waitForExistence(timeout: 10.0)) XCTAssertTrue(webUsernameTextField.waitForExistence(timeout: 10.0))
webUsernameTextField.clearAndTypeText(username, app: self) webUsernameTextField.clearAndTypeText(username, app: self)
buttons["Done"].tap() // Dismiss the keyboard so that the password text field is fully hittable. webAuthenticationView.buttons["selected"].firstMatch.tap() // Dismiss the keyboard so that the password text field is fully hittable.
let webPasswordTextField = secureTextFields["Password"] let webPasswordTextField = secureTextFields["Password"]
XCTAssertTrue(webPasswordTextField.waitForExistence(timeout: 10.0)) XCTAssertTrue(webPasswordTextField.waitForExistence(timeout: 10.0))
webPasswordTextField.clearAndTypeText(password, app: self) webPasswordTextField.clearAndTypeText(password, app: self)
buttons["Done"].tap() // Dismiss the keyboard so that the continue button is fully hittable. webAuthenticationView.buttons["selected"].firstMatch.tap() // Dismiss the keyboard so that the continue button is fully hittable.
let webLoginButton = webAuthenticationView.buttons["Continue"] let webLoginButton = webAuthenticationView.buttons["Continue"]
XCTAssertTrue(webLoginButton.waitForExistence(timeout: 10.0)) XCTAssertTrue(webLoginButton.waitForExistence(timeout: 10.0))
@@ -123,7 +123,7 @@ extension XCUIApplication {
logoutButton.tap(.center) logoutButton.tap(.center)
// Confirm logout // Confirm logout
let alertLogoutButton = alerts.firstMatch.buttons["Sign out"] let alertLogoutButton = alerts.firstMatch.buttons["Sign out"].firstMatch
XCTAssertTrue(alertLogoutButton.waitForExistence(timeout: 10.0)) XCTAssertTrue(alertLogoutButton.waitForExistence(timeout: 10.0))
alertLogoutButton.tap(.center) alertLogoutButton.tap(.center)

View File

@@ -60,7 +60,7 @@ class UserFlowTests: XCTestCase {
tapOnBackButton("Chats") tapOnBackButton("Chats")
// Cancel initial the room search // Cancel initial the room search
let searchCancelButton = app.buttons["Cancel"].firstMatch let searchCancelButton = app.buttons["Close"].firstMatch
XCTAssertTrue(searchCancelButton.waitForExistence(timeout: 10.0)) XCTAssertTrue(searchCancelButton.waitForExistence(timeout: 10.0))
searchCancelButton.tap(.center) searchCancelButton.tap(.center)
} }
@@ -263,7 +263,7 @@ class UserFlowTests: XCTestCase {
/// When there are multiple buttons with the same label in the hierarchy, all the buttons we created /// When there are multiple buttons with the same label in the hierarchy, all the buttons we created
/// should have an identifier set, and so this method will ignore those picking the one with only a label. /// should have an identifier set, and so this method will ignore those picking the one with only a label.
private func tapOnBackButton(_ label: String = "Back") { private func tapOnBackButton(_ label: String = "Back") {
let button = app.buttons.matching(NSPredicate(format: "label == %@ && identifier == ''", label)).firstMatch let button = app.buttons.matching(NSPredicate(format: "label == %@ && identifier == 'BackButton'", label)).firstMatch
XCTAssertTrue(button.waitForExistence(timeout: 10.0)) XCTAssertTrue(button.waitForExistence(timeout: 10.0))
button.tap(.center) button.tap(.center)
} }