


























@@ -396,7 +396,7 @@ describe("startGatewayPostAttachRuntime", () => {
396396397397it("waits for deferred startup plugin attachment before channel sidecars", async () => {
398398const events: string[] = [];
399-let finishAttachment!: () => void;
399+let finishAttachment: (() => void) | undefined;
400400const attachmentFinished = new Promise<void>((resolve) => {
401401finishAttachment = () => {
402402events.push("startup-loaded-end");
@@ -439,6 +439,9 @@ describe("startGatewayPostAttachRuntime", () => {
439439});
440440expect(startGatewaySidecars).not.toHaveBeenCalled();
441441442+if (!finishAttachment) {
443+throw new Error("Expected startup plugin attachment release callback to be initialized");
444+}
442445finishAttachment();
443446await runtimePromise;
444447@@ -517,7 +520,7 @@ describe("startGatewayPostAttachRuntime", () => {
517520});
518521519522it("waits for sidecars by default before returning", async () => {
520-let resumeSidecars!: () => void;
523+let resumeSidecars: (() => void) | undefined;
521524const sidecarsReady = new Promise<{ pluginServices: null }>((resolve) => {
522525resumeSidecars = () => resolve({ pluginServices: null });
523526});
@@ -539,6 +542,9 @@ describe("startGatewayPostAttachRuntime", () => {
539542await Promise.resolve();
540543expect(returned).toBe(false);
541544545+if (!resumeSidecars) {
546+throw new Error("Expected gateway sidecar resume callback to be initialized");
547+}
542548resumeSidecars();
543549await runtimePromise;
544550expect(returned).toBe(true);
@@ -604,7 +610,7 @@ describe("startGatewayPostAttachRuntime", () => {
604610await withEnvAsync(
605611{ OPENCLAW_SKIP_CHANNELS: undefined, OPENCLAW_SKIP_PROVIDERS: undefined },
606612async () => {
607-let resolvePrewarm!: () => void;
613+let resolvePrewarm: (() => void) | undefined;
608614const prewarmPrimaryModel = vi.fn(
609615async () =>
610616await new Promise<undefined>((resolve) => {
@@ -649,14 +655,17 @@ describe("startGatewayPostAttachRuntime", () => {
649655);
650656await sidecarsPromise;
651657658+if (!resolvePrewarm) {
659+throw new Error("Expected primary model prewarm resolver to be initialized");
660+}
652661resolvePrewarm();
653662await Promise.resolve();
654663},
655664);
656665});
657666658667it("keeps startup-gated methods unavailable while sidecars are still resuming", async () => {
659-let resumeSidecars!: () => void;
668+let resumeSidecars: (() => void) | undefined;
660669const sidecarsReady = new Promise<{ pluginServices: null }>((resolve) => {
661670resumeSidecars = () => resolve({ pluginServices: null });
662671});
@@ -684,6 +693,9 @@ describe("startGatewayPostAttachRuntime", () => {
684693expect([...unavailableGatewayMethods]).toEqual([...STARTUP_UNAVAILABLE_GATEWAY_METHODS]);
685694expect(hoisted.startPluginServices).not.toHaveBeenCalled();
686695696+if (!resumeSidecars) {
697+throw new Error("Expected gateway sidecar resume callback to be initialized");
698+}
687699resumeSidecars();
688700await vi.waitFor(() => {
689701expect([...unavailableGatewayMethods]).toEqual([]);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。