mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
fix(runtime): guard cleanup and preserve skipped cron jobs
This commit is contained in:
@@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest";
|
||||
import type { WebhookContext } from "../types.js";
|
||||
import { TwilioProvider } from "./twilio.js";
|
||||
|
||||
const STREAM_URL_PREFIX = "wss://example.ngrok.app/voice/stream?token=";
|
||||
const STREAM_URL = "wss://example.ngrok.app/voice/stream";
|
||||
|
||||
function createProvider(): TwilioProvider {
|
||||
return new TwilioProvider(
|
||||
@@ -30,7 +30,8 @@ describe("TwilioProvider", () => {
|
||||
|
||||
const result = provider.parseWebhookEvent(ctx);
|
||||
|
||||
expect(result.providerResponseBody).toContain(STREAM_URL_PREFIX);
|
||||
expect(result.providerResponseBody).toContain(STREAM_URL);
|
||||
expect(result.providerResponseBody).toContain('<Parameter name="token" value="');
|
||||
expect(result.providerResponseBody).toContain("<Connect>");
|
||||
});
|
||||
|
||||
@@ -54,7 +55,8 @@ describe("TwilioProvider", () => {
|
||||
|
||||
const result = provider.parseWebhookEvent(ctx);
|
||||
|
||||
expect(result.providerResponseBody).toContain(STREAM_URL_PREFIX);
|
||||
expect(result.providerResponseBody).toContain(STREAM_URL);
|
||||
expect(result.providerResponseBody).toContain('<Parameter name="token" value="');
|
||||
expect(result.providerResponseBody).toContain("<Connect>");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -168,7 +168,7 @@ function moveToFinished(session: ProcessSession, status: ProcessStatus) {
|
||||
session.child.stderr?.destroy?.();
|
||||
|
||||
// Remove all event listeners to prevent memory leaks
|
||||
session.child.removeAllListeners();
|
||||
session.child.removeAllListeners?.();
|
||||
|
||||
// Clear the reference
|
||||
delete session.child;
|
||||
|
||||
@@ -70,9 +70,7 @@ function applyJobResult(
|
||||
}
|
||||
|
||||
const shouldDelete =
|
||||
job.schedule.kind === "at" &&
|
||||
job.deleteAfterRun === true &&
|
||||
(result.status === "ok" || result.status === "skipped");
|
||||
job.schedule.kind === "at" && job.deleteAfterRun === true && result.status === "ok";
|
||||
|
||||
if (!shouldDelete) {
|
||||
if (job.schedule.kind === "at") {
|
||||
|
||||
Reference in New Issue
Block a user