Ai4RateLimitRetrySmokeTest.kt
src/jvmMain/kotlin/afield/examples/Ai4RateLimitRetrySmokeTest.kt · 34 lines
package afield.examples
import afield.ai.models.OpenAiIdeCodexBridge
object Ai4RateLimitRetrySmokeTest
FIELD_TEST id: examples.ai4.rate-limit-retry-delay runner: jvm-main entrypoint: afield.examples.Ai4RateLimitRetrySmokeTest tags: [smoke, ai4, rate-limit] timeoutSec: 10 expect: exitCode: 0 stdoutContains: - "Ai4RateLimitRetrySmokeTest ok"
fun main(args: Array<String>)
@JvmStatic
fun main(args: Array<String>) {
val pasted = """
429: Rate limit reached for gpt-5.5 in organization org on tokens per min (TPM):
Limit 500000, Used 449840, Requested 55534. Please try again in 644ms.
""".trimIndent()
require(OpenAiIdeCodexBridge.retryDelayMsForRateLimitMessage(pasted) == 966L) {
"Expected 644ms * 1.5 to round up to 966ms"
}
require(OpenAiIdeCodexBridge.retryDelayMsForRateLimitMessage("Rate limit reached. Please try again in 1.2s.") == 1800L)
require(OpenAiIdeCodexBridge.retryDelayMsForRateLimitMessage("429 retry-after: 2") == 3000L)
require(OpenAiIdeCodexBridge.retryDelayMsForRateLimitMessage("ordinary tool failure") == null)
println("Ai4RateLimitRetrySmokeTest ok")
}
}