mirror of https://github.com/openclaw/openclaw.git
fix(cron): avoid false legacy payload kind migrations
This commit is contained in:
parent
21fa50f564
commit
3e2c776aaf
|
|
@ -75,4 +75,25 @@ describe("normalizeStoredCronJobs", () => {
|
|||
channel: "slack",
|
||||
});
|
||||
});
|
||||
|
||||
it("does not report legacyPayloadKind for already-normalized payload kinds", () => {
|
||||
const jobs = [
|
||||
{
|
||||
id: "normalized-agent-turn",
|
||||
name: "normalized",
|
||||
enabled: true,
|
||||
wakeMode: "now",
|
||||
schedule: { kind: "every", everyMs: 60_000, anchorMs: 1 },
|
||||
payload: { kind: "agentTurn", message: "ping" },
|
||||
sessionTarget: "isolated",
|
||||
delivery: { mode: "announce" },
|
||||
state: {},
|
||||
},
|
||||
] as Array<Record<string, unknown>>;
|
||||
|
||||
const result = normalizeStoredCronJobs(jobs);
|
||||
|
||||
expect(result.mutated).toBe(false);
|
||||
expect(result.issues.legacyPayloadKind).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -28,14 +28,21 @@ function incrementIssue(issues: CronStoreIssues, key: CronStoreIssueKey) {
|
|||
}
|
||||
|
||||
function normalizePayloadKind(payload: Record<string, unknown>) {
|
||||
const raw = typeof payload.kind === "string" ? payload.kind.trim().toLowerCase() : "";
|
||||
if (raw === "agentturn") {
|
||||
payload.kind = "agentTurn";
|
||||
return true;
|
||||
const original = typeof payload.kind === "string" ? payload.kind.trim() : "";
|
||||
const lowered = original.toLowerCase();
|
||||
if (lowered === "agentturn") {
|
||||
if (original !== "agentTurn") {
|
||||
payload.kind = "agentTurn";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (raw === "systemevent") {
|
||||
payload.kind = "systemEvent";
|
||||
return true;
|
||||
if (lowered === "systemevent") {
|
||||
if (original !== "systemEvent") {
|
||||
payload.kind = "systemEvent";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue