@craft-native/ios 0.0.414 → 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@craft-native/ios",
3
- "version": "0.0.414",
3
+ "version": "0.0.415",
4
4
  "homepage": "https://github.com/craft-native/craft/tree/main/packages/ios#readme",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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
- var done = false
643
- while !done && Date() < end {
644
- if let button = candidates.first(where: { $0.exists && $0.isHittable }) { button.tap(); done = true }
645
- else { Thread.sleep(forTimeInterval: 0.5) }
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): \(done ? "tapped" : "none shown")")
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
  }