ssap_app/node_modules/expo-dev-menu/ios/UITests/DevMenuLooper.swift

30 lines
753 B
Swift

import Foundation
import XCTest
class DevMenuLooper {
static func runMainLoop(for sec: Double) {
RunLoop.main.run(mode: .default, before: Date(timeIntervalSinceNow: sec))
RunLoop.main.run(mode: .common, before: Date(timeIntervalSinceNow: sec))
RunLoop.main.run(mode: .tracking, before: Date(timeIntervalSinceNow: sec))
}
static func runMainLoopUntilEmpty() {
var isEmpty = false
DispatchQueue.main.async {
isEmpty = true
}
let timout = Date(timeIntervalSinceNow: DevMenuTestOptions.defaultTimeout)
while timout.timeIntervalSinceNow > 0 {
if isEmpty {
return
}
DevMenuLooper.runMainLoop(for: DevMenuTestOptions.loopTime)
}
XCTFail("Wait for main thread timeout.")
}
}