fun waitFor()

in remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt [37:52]


fun waitFor(
    duration: Duration = Duration.ofSeconds(5),
    interval: Duration = Duration.ofSeconds(2),
    description: String? = null,
    errorMessageSupplier: () -> String,
    condition: () -> Boolean
) {
    if (description != null) {
        return step("Waiting for $description") {
            if (repeatInTime(duration, interval, isLogEnabled = true) { condition() }) return@step
            throw WaitForConditionTimeoutException(duration, errorMessageSupplier())
        }
    }
    if (repeatInTime(duration, interval) { condition() }) return
    throw WaitForConditionTimeoutException(duration, errorMessageSupplier())
}