@craft-native/ios 0.0.413 → 0.0.415
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -639,12 +639,26 @@ final class DriverTests: XCTestCase {
|
|
|
639
639
|
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
|
|
640
640
|
let candidates = [app.buttons[label], springboard.buttons[label]]
|
|
641
641
|
let end = Date().addingTimeInterval(6)
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
642
|
+
// A tap is not a dismissal. iOS 26 draws "Save Password?" as a
|
|
643
|
+
// sheet that is in the tree, and hittable, while it still slides
|
|
644
|
+
// in, and a tap then is dropped: the driver said "tapped" and
|
|
645
|
+
// the sheet stayed over the app, so every later step looked at a
|
|
646
|
+
// screen it could not reach. Done means the button has gone; until
|
|
647
|
+
// then it is tapped again.
|
|
648
|
+
var tapped = false
|
|
649
|
+
var gone = false
|
|
650
|
+
while !gone && Date() < end {
|
|
651
|
+
guard let button = candidates.first(where: { $0.exists && $0.isHittable }) else {
|
|
652
|
+
if tapped { gone = true } else { Thread.sleep(forTimeInterval: 0.5) }
|
|
653
|
+
continue
|
|
654
|
+
}
|
|
655
|
+
button.tap()
|
|
656
|
+
tapped = true
|
|
657
|
+
let settle = Date().addingTimeInterval(1.5)
|
|
658
|
+
while button.exists && Date() < settle { Thread.sleep(forTimeInterval: 0.25) }
|
|
659
|
+
gone = !button.exists
|
|
646
660
|
}
|
|
647
|
-
note("dismiss \(label): \(
|
|
661
|
+
note("dismiss \(label): \(gone ? "tapped" : tapped ? "STILL SHOWN" : "none shown")")
|
|
648
662
|
case "log": note(arg)
|
|
649
663
|
default: XCTFail("Unknown command \(command)"); note("FAIL unknown command \(command)")
|
|
650
664
|
}
|