mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-12 18:12:56 +00:00
test(gateway): reuse deferred helper in lane tests
This commit is contained in:
@@ -4,19 +4,7 @@ import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import { enqueueCommandInLane, resetCommandQueueStateForTest } from "../process/command-queue.js";
|
||||
import { CommandLane } from "../process/lanes.js";
|
||||
import { applyGatewayLaneConcurrency } from "./server-lanes.js";
|
||||
|
||||
function createDeferred<T>() {
|
||||
let resolve: ((value: T | PromiseLike<T>) => void) | undefined;
|
||||
let reject: ((reason?: unknown) => void) | undefined;
|
||||
const promise = new Promise<T>((res, rej) => {
|
||||
resolve = res;
|
||||
reject = rej;
|
||||
});
|
||||
if (!resolve || !reject) {
|
||||
throw new Error("Expected deferred callbacks to be initialized");
|
||||
}
|
||||
return { promise, resolve, reject };
|
||||
}
|
||||
import { createDeferred } from "./test-helpers.deferred.js";
|
||||
|
||||
describe("applyGatewayLaneConcurrency", () => {
|
||||
afterEach(() => {
|
||||
@@ -28,8 +16,8 @@ describe("applyGatewayLaneConcurrency", () => {
|
||||
|
||||
let activeRuns = 0;
|
||||
let peakActiveRuns = 0;
|
||||
const allRunsStarted = createDeferred<void>();
|
||||
const releaseRuns = createDeferred<void>();
|
||||
const allRunsStarted = createDeferred();
|
||||
const releaseRuns = createDeferred();
|
||||
|
||||
const run = async () => {
|
||||
activeRuns += 1;
|
||||
@@ -66,8 +54,8 @@ describe("applyGatewayLaneConcurrency", () => {
|
||||
|
||||
let activeRuns = 0;
|
||||
let peakActiveRuns = 0;
|
||||
const bothRunsStarted = createDeferred<void>();
|
||||
const releaseRuns = createDeferred<void>();
|
||||
const bothRunsStarted = createDeferred();
|
||||
const releaseRuns = createDeferred();
|
||||
|
||||
const run = async () => {
|
||||
activeRuns += 1;
|
||||
@@ -104,7 +92,7 @@ describe("applyGatewayLaneConcurrency", () => {
|
||||
applyGatewayLaneConcurrency({ cron: { maxConcurrentRuns: 2 } } as OpenClawConfig);
|
||||
|
||||
let startedRuns = 0;
|
||||
const releaseRuns = createDeferred<void>();
|
||||
const releaseRuns = createDeferred();
|
||||
const run = async () => {
|
||||
startedRuns += 1;
|
||||
await releaseRuns.promise;
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
} from "../auto-reply/reply/dispatcher-registry.js";
|
||||
import { createReplyDispatcher } from "../auto-reply/reply/reply-dispatcher.js";
|
||||
import { getTotalQueueSize, resetCommandQueueStateForTest } from "../process/command-queue.js";
|
||||
import { createDeferred } from "./test-helpers.deferred.js";
|
||||
|
||||
async function flushMicrotasks(count = 10): Promise<void> {
|
||||
for (let i = 0; i < count; i += 1) {
|
||||
@@ -12,19 +13,6 @@ async function flushMicrotasks(count = 10): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
function createDeferred<T = void>() {
|
||||
let resolve: ((value: T | PromiseLike<T>) => void) | undefined;
|
||||
let reject: ((reason?: unknown) => void) | undefined;
|
||||
const promise = new Promise<T>((res, rej) => {
|
||||
resolve = res;
|
||||
reject = rej;
|
||||
});
|
||||
if (!resolve || !reject) {
|
||||
throw new Error("Expected deferred callbacks to be initialized");
|
||||
}
|
||||
return { promise, resolve, reject };
|
||||
}
|
||||
|
||||
describe("gateway restart deferral", () => {
|
||||
let replyErrors: string[] = [];
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export function createDeferred<T>() {
|
||||
let resolve: ((value: T) => void) | undefined;
|
||||
let reject: ((error: unknown) => void) | undefined;
|
||||
export function createDeferred<T = void>() {
|
||||
let resolve: ((value: T | PromiseLike<T>) => void) | undefined;
|
||||
let reject: ((reason?: unknown) => void) | undefined;
|
||||
const promise = new Promise<T>((resolvePromise, rejectPromise) => {
|
||||
resolve = resolvePromise;
|
||||
reject = rejectPromise;
|
||||
|
||||
Reference in New Issue
Block a user