From bcac74fa6c05afe41056c800d9bec2e7e2c537c6 Mon Sep 17 00:00:00 2001 From: Gronod Date: Thu, 10 Sep 2026 06:50:31 +0100 Subject: [PATCH 1/3] fix: query closeAboutBtn within sheet hierarchy with explicit wait - Change closeAboutBtn query from app.buttons to app.sheets.firstMatch.buttons - Replace exists check with waitForExistence(timeout: 5) for more reliable sheet button detection --- Tests/ICCeryUITests/AboutHelpUITests.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/ICCeryUITests/AboutHelpUITests.swift b/Tests/ICCeryUITests/AboutHelpUITests.swift index 86d7a35..9585623 100644 --- a/Tests/ICCeryUITests/AboutHelpUITests.swift +++ b/Tests/ICCeryUITests/AboutHelpUITests.swift @@ -46,8 +46,8 @@ final class AboutHelpUITests: XCTestCase { _ = waitFor("aboutVersion", timeout: 10) XCTAssertTrue(element("aboutBuildDate").exists) - let close = app.buttons["closeAboutBtn"] - XCTAssertTrue(close.exists) + let close = app.sheets.firstMatch.buttons["closeAboutBtn"] + XCTAssertTrue(close.waitForExistence(timeout: 5)) close.click() XCTAssertFalse(element("aboutDialog").exists) -- 2.39.5 From 6c939289ea271c6ed120bcd6d4fc9c0f8240e511 Mon Sep 17 00:00:00 2001 From: Gronod Date: Thu, 10 Sep 2026 06:56:33 +0100 Subject: [PATCH 2/3] fix: query print failure notice with predicate instead of identifier - Replace element("printNotificationText") with NSPredicate-based query on app.staticTexts - Check notice.label instead of notice.value for "Print failed" text - Ensures UI test reliably finds print failure notification in Stage2View --- Tests/ICCeryUITests/Milestone3UITests.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/ICCeryUITests/Milestone3UITests.swift b/Tests/ICCeryUITests/Milestone3UITests.swift index b821f96..94a4218 100644 --- a/Tests/ICCeryUITests/Milestone3UITests.swift +++ b/Tests/ICCeryUITests/Milestone3UITests.swift @@ -210,10 +210,10 @@ final class Milestone3UITests: XCTestCase { _ = waitFor("printerStatusBadge") app.buttons["btnPrintAll"].click() - let notice = element("printNotificationText") + let predicate = NSPredicate(format: "label CONTAINS[c] %@", "Print failed") + let notice = app.staticTexts.containing(predicate).firstMatch XCTAssertTrue(notice.waitForExistence(timeout: 10)) - XCTAssertTrue((notice.value as? String ?? "") - .contains("Print failed")) + XCTAssertTrue(notice.label.contains("Print failed")) } /// wizardState.printerName records the queue used for spooling (#95). -- 2.39.5 From 906a449062cfc0770c667f5b5d85332bf89899b7 Mon Sep 17 00:00:00 2001 From: Gronod Date: Thu, 10 Sep 2026 06:57:27 +0100 Subject: [PATCH 3/3] fix: increase layout button wait timeout from 10s to 25s in Milestone6CalibrationUITests - Extends waitForExistence timeout to accommodate slower profile generation on CI runners --- Tests/ICCeryUITests/Milestone6CalibrationUITests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/ICCeryUITests/Milestone6CalibrationUITests.swift b/Tests/ICCeryUITests/Milestone6CalibrationUITests.swift index befa40a..272219b 100644 --- a/Tests/ICCeryUITests/Milestone6CalibrationUITests.swift +++ b/Tests/ICCeryUITests/Milestone6CalibrationUITests.swift @@ -75,6 +75,6 @@ final class Milestone6CalibrationUITests: XCTestCase { // After generation the wizard should advance to Stage 2 (layout) because // a CAL_ .ti1 now exists and the session is in calibration mode. let layout = app.buttons["btnCreateLayout"] - XCTAssertTrue(layout.waitForExistence(timeout: 10)) + XCTAssertTrue(layout.waitForExistence(timeout: 25)) } } -- 2.39.5