From f7f22f4817b313ef148532b752671db51bcd7243 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 17:33:43 +0000 Subject: [PATCH] Add delays between tests Introduce automatic delay between test executions in the test runner to prevent rate limiting. Added a delayBetweenTests config (default 2.5s), a delay() helper, and updated runSuite to wait between tests. This helps avoid "Too many submissions in a short time" errors during test runs. --- src/lib/integrationTests/testRunner.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/lib/integrationTests/testRunner.ts b/src/lib/integrationTests/testRunner.ts index 97d4a9e5..c19063f3 100644 --- a/src/lib/integrationTests/testRunner.ts +++ b/src/lib/integrationTests/testRunner.ts @@ -51,9 +51,18 @@ export class IntegrationTestRunner { private isRunning = false; private shouldStop = false; private onProgress?: (result: TestResult) => void; + private delayBetweenTests: number; - constructor(onProgress?: (result: TestResult) => void) { + constructor(onProgress?: (result: TestResult) => void, delayBetweenTests: number = 2500) { this.onProgress = onProgress; + this.delayBetweenTests = delayBetweenTests; // Default 2.5 seconds to prevent rate limiting + } + + /** + * Wait for specified milliseconds (for rate limiting prevention) + */ + private async delay(ms: number): Promise { + return new Promise(resolve => setTimeout(resolve, ms)); } /** @@ -123,13 +132,19 @@ export class IntegrationTestRunner { async runSuite(suite: TestSuite): Promise { const suiteResults: TestResult[] = []; - for (const test of suite.tests) { + for (let i = 0; i < suite.tests.length; i++) { + const test = suite.tests[i]; const result = await this.runTest(test, suite.name); suiteResults.push(result); if (this.shouldStop) { break; } + + // Add delay between tests to prevent rate limiting (except after the last test) + if (i < suite.tests.length - 1 && this.delayBetweenTests > 0) { + await this.delay(this.delayBetweenTests); + } } return suiteResults;