






























@@ -149,6 +149,44 @@ function isRecord(value: unknown): value is Record<string, unknown> {
149149return Boolean(value) && typeof value === "object" && !Array.isArray(value);
150150}
151151152+type MockSessionEntry = {
153+sessionId?: string;
154+updatedAt?: number;
155+[key: string]: unknown;
156+};
157+158+function createMockSessionRuntime(sessionStore: Record<string, unknown>) {
159+return {
160+resolveStorePath: vi.fn(() => "/tmp/sessions.json"),
161+loadSessionStore: vi.fn(() => sessionStore),
162+saveSessionStore: vi.fn(async () => {}),
163+updateSessionStore: vi.fn(async (_storePath, mutator: (store: never) => unknown) =>
164+mutator(sessionStore as never),
165+),
166+getSessionEntry: vi.fn(
167+({ sessionKey }: { sessionKey: string }) => sessionStore[sessionKey] as MockSessionEntry,
168+),
169+patchSessionEntry: vi.fn(
170+async ({
171+ sessionKey,
172+ fallbackEntry,
173+ update,
174+}: {
175+sessionKey: string;
176+fallbackEntry: MockSessionEntry;
177+update: (entry: MockSessionEntry) => Promise<MockSessionEntry> | MockSessionEntry;
178+}) => {
179+const current = (sessionStore[sessionKey] as MockSessionEntry | undefined) ?? fallbackEntry;
180+const patch = await update(current);
181+const next = { ...current, ...patch };
182+sessionStore[sessionKey] = next;
183+return next;
184+},
185+),
186+resolveSessionFilePath: vi.fn(() => "/tmp/session.json"),
187+};
188+}
189+152190function requireRecord(value: unknown, label: string): Record<string, unknown> {
153191if (!isRecord(value)) {
154192throw new Error(`Expected ${label} to be an object`);
@@ -4077,13 +4115,7 @@ describe("google-meet plugin", () => {
40774115resolveAgentDir: vi.fn(() => "/tmp/agent"),
40784116resolveAgentWorkspaceDir: vi.fn(() => "/tmp/workspace"),
40794117ensureAgentWorkspace: vi.fn(async () => {}),
4080-session: {
4081-resolveStorePath: vi.fn(() => "/tmp/sessions.json"),
4082-loadSessionStore: vi.fn(() => sessionStore),
4083-saveSessionStore: vi.fn(async () => {}),
4084-updateSessionStore: vi.fn(async (_storePath, mutator) => mutator(sessionStore as never)),
4085-resolveSessionFilePath: vi.fn(() => "/tmp/session.json"),
4086-},
4118+session: createMockSessionRuntime(sessionStore),
40874119runEmbeddedPiAgent: vi.fn(async () => ({
40884120payloads: [{ text: "Use the Portugal launch data." }],
40894121meta: {},
@@ -4245,13 +4277,7 @@ describe("google-meet plugin", () => {
42454277resolveAgentDir: vi.fn(() => "/tmp/agent"),
42464278resolveAgentWorkspaceDir: vi.fn(() => "/tmp/workspace"),
42474279ensureAgentWorkspace: vi.fn(async () => {}),
4248-session: {
4249-resolveStorePath: vi.fn(() => "/tmp/sessions.json"),
4250-loadSessionStore: vi.fn(() => sessionStore),
4251-saveSessionStore: vi.fn(async () => {}),
4252-updateSessionStore: vi.fn(async (_storePath, mutator) => mutator(sessionStore as never)),
4253-resolveSessionFilePath: vi.fn(() => "/tmp/session.json"),
4254-},
4280+session: createMockSessionRuntime(sessionStore),
42554281runEmbeddedPiAgent: vi.fn(async (_request: unknown) => ({
42564282payloads: [{ text: "Use the Portugal launch data." }],
42574283meta: {},
@@ -4467,13 +4493,7 @@ describe("google-meet plugin", () => {
44674493resolveAgentDir: vi.fn(() => "/tmp/agent"),
44684494resolveAgentWorkspaceDir: vi.fn(() => "/tmp/workspace"),
44694495ensureAgentWorkspace: vi.fn(async () => {}),
4470-session: {
4471-resolveStorePath: vi.fn(() => "/tmp/sessions.json"),
4472-loadSessionStore: vi.fn(() => sessionStore),
4473-saveSessionStore: vi.fn(async () => {}),
4474-updateSessionStore: vi.fn(async (_storePath, mutator) => mutator(sessionStore as never)),
4475-resolveSessionFilePath: vi.fn(() => "/tmp/session.json"),
4476-},
4496+session: createMockSessionRuntime(sessionStore),
44774497runEmbeddedPiAgent: vi.fn(async (_request: unknown) => ({
44784498payloads: [{ text: "The launch is still on track." }],
44794499meta: {},
@@ -4741,13 +4761,7 @@ describe("google-meet plugin", () => {
47414761resolveAgentDir: vi.fn(() => "/tmp/agent"),
47424762resolveAgentWorkspaceDir: vi.fn(() => "/tmp/workspace"),
47434763ensureAgentWorkspace: vi.fn(async () => {}),
4744-session: {
4745-resolveStorePath: vi.fn(() => "/tmp/sessions.json"),
4746-loadSessionStore: vi.fn(() => sessionStore),
4747-saveSessionStore: vi.fn(async () => {}),
4748-updateSessionStore: vi.fn(async (_storePath, mutator) => mutator(sessionStore as never)),
4749-resolveSessionFilePath: vi.fn(() => "/tmp/session.json"),
4750-},
4764+session: createMockSessionRuntime(sessionStore),
47514765runEmbeddedPiAgent: vi.fn(async () => ({
47524766payloads: [{ text: "Use the launch update." }],
47534767meta: {},
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。