From 9dfa79ebd02536f650efd92526837bfc86d8d2e7 Mon Sep 17 00:00:00 2001 From: gronod Date: Mon, 14 Sep 2026 15:16:25 +0000 Subject: [PATCH] test(m4): wait for Start Read to be enabled before clicking Runs 35251 and 35293 left Stage 3 idle because XCTest clicked a disabled Start Read. driveOnePass already waits for isEnabled; the handheld average test now uses it. --- Tests/ICCeryUITests/Milestone4UITests.swift | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/Tests/ICCeryUITests/Milestone4UITests.swift b/Tests/ICCeryUITests/Milestone4UITests.swift index 6d4bc15..5cce6e9 100644 --- a/Tests/ICCeryUITests/Milestone4UITests.swift +++ b/Tests/ICCeryUITests/Milestone4UITests.swift @@ -98,23 +98,9 @@ final class Milestone4UITests: XCTestCase { app.buttons["btnDetectInstruments"].click() _ = waitFor("chartreadInstrumentSelect", timeout: 20) - // Keep Auto (port 1) and start the session. - XCTAssertTrue(app.buttons["btnStartRead"].waitForExistence(timeout: 5)) - app.buttons["btnStartRead"].click() - - // Calibrate. - let calibrate = element("btnCalibrate") - if !calibrate.waitForExistence(timeout: 25) { - let error = element("chartreadLastError").label - let value = element("chartreadLastError").value as? String ?? "" - XCTFail("No calibrate button. lastError.label='\(error)' value='\(value)'") - } - app.buttons["btnCalibrate"].click() - - // Trigger each strip until all are read → Done & Save appears. - driveStripsUntilDone() - XCTAssertTrue(element("btnDoneRead").exists) - app.buttons["btnDoneRead"].firstMatch.click() + // Wait until Start is enabled before clicking. Existence-only + // clicks are no-ops on the disabled control (runs 35251, 35293). + driveOnePass(startButton: "btnStartRead") // Averaging panel appears with one pass snapshot. _ = waitFor("chartreadAveragingPanel", timeout: 20) -- 2.39.5