Files
short-video-viral-replicator/agent-studio-mini/packages/harness/tests/task.test.ts
T

23 lines
1.2 KiB
TypeScript

import { it, expect } from "vitest";
import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import path from "node:path";
import { SessionRegistry } from "../src/session.js";
import { updateTask, saveTask, loadTask } from "../src/task.js";
it("restores delivery requirements across process recreation, not completion", async () => {
const root = await mkdtemp(path.join(tmpdir(), "task-restore-"));
try {
const registry = new SessionRegistry(root);
const s = await registry.create();
const first = updateTask(undefined, "俄罗斯 Ozon 100元彩妆 PPT", "r1")!;
const task = updateTask(first, "改用 SW Ads 模板", "r2")!;
await saveTask(s.workspace, task);
const restored = new SessionRegistry(root);
await restored.restore();
expect(restored.require(s.sessionId).task?.instructions).toEqual(first.instructions.concat("改用 SW Ads 模板"));
expect((await loadTask(s.workspace))?.status).toBe("failed");
expect(updateTask(restored.require(s.sessionId).task, "继续", "r3")?.template).toBe("swads");
expect(updateTask(task, "卡在哪了", "r4")).toBeUndefined();
} finally { await rm(root, { recursive: true, force: true }); }
});