




















@@ -12,6 +12,9 @@ type AnyMock = ReturnType<typeof vi.fn>;
1212type AnyAsyncMock = ReturnType<typeof vi.fn<(...args: unknown[]) => Promise<unknown>>>;
1313type GetRuntimeConfigFn =
1414typeof import("openclaw/plugin-sdk/runtime-config-snapshot").getRuntimeConfig;
15+type GetSessionEntryFn = typeof import("openclaw/plugin-sdk/session-store-runtime").getSessionEntry;
16+type ListSessionEntriesFn =
17+typeof import("openclaw/plugin-sdk/session-store-runtime").listSessionEntries;
1518type LoadSessionStoreFn =
1619typeof import("openclaw/plugin-sdk/session-store-runtime").loadSessionStore;
1720type ResolveStorePathFn =
@@ -61,28 +64,43 @@ vi.mock("openclaw/plugin-sdk/web-media", () => ({
6164}));
62656366const {
67+ getSessionEntryMock,
6468 getRuntimeConfig,
69+ listSessionEntriesMock,
6570 loadSessionStoreMock,
6671 readSessionUpdatedAtMock,
6772 recordInboundSessionMock,
6873 resolveStorePathMock,
6974 sessionStoreEntries,
7075} = vi.hoisted(
7176(): {
77+getSessionEntryMock: MockFn<GetSessionEntryFn>;
7278getRuntimeConfig: MockFn<GetRuntimeConfigFn>;
79+listSessionEntriesMock: MockFn<ListSessionEntriesFn>;
7380loadSessionStoreMock: MockFn<LoadSessionStoreFn>;
7481readSessionUpdatedAtMock: MockFn<ReadSessionUpdatedAtFn>;
7582recordInboundSessionMock: MockFn<NonNullable<TelegramBotDeps["recordInboundSession"]>>;
7683resolveStorePathMock: MockFn<ResolveStorePathFn>;
7784sessionStoreEntries: { value: SessionStore };
7885} => ({
7986getRuntimeConfig: vi.fn<GetRuntimeConfigFn>(() => ({})),
80-loadSessionStoreMock: vi.fn<LoadSessionStoreFn>(
81-(_storePath, _opts) => sessionStoreEntries.value,
82-),
8387resolveStorePathMock: vi.fn<ResolveStorePathFn>(
8488(storePath?: string) => storePath ?? sessionStorePath,
8589),
90+loadSessionStoreMock: vi.fn<LoadSessionStoreFn>(
91+(_storePath, _opts) => sessionStoreEntries.value,
92+),
93+getSessionEntryMock: vi.fn<GetSessionEntryFn>(({ storePath, sessionKey, agentId }) => {
94+const resolvedStorePath = storePath ?? resolveStorePathMock(undefined, { agentId });
95+return loadSessionStoreMock(resolvedStorePath)[sessionKey];
96+}),
97+listSessionEntriesMock: vi.fn<ListSessionEntriesFn>(({ storePath, agentId } = {}) => {
98+const resolvedStorePath = storePath ?? resolveStorePathMock(undefined, { agentId });
99+return Object.entries(loadSessionStoreMock(resolvedStorePath)).map(([sessionKey, entry]) => ({
100+ sessionKey,
101+ entry,
102+}));
103+}),
86104readSessionUpdatedAtMock: vi.fn<ReadSessionUpdatedAtFn>(() => undefined),
87105recordInboundSessionMock: vi.fn(async () => undefined),
88106sessionStoreEntries: { value: {} as SessionStore },
@@ -444,6 +462,8 @@ export const telegramBotRuntimeForTest: TelegramBotRuntimeForTest = {
444462};
445463export const telegramBotDepsForTest: TelegramBotDeps = {
446464 getRuntimeConfig,
465+getSessionEntry: getSessionEntryMock,
466+listSessionEntries: listSessionEntriesMock,
447467loadSessionStore: loadSessionStoreMock as TelegramBotDeps["loadSessionStore"],
448468resolveStorePath: resolveStorePathMock,
449469readSessionUpdatedAt: readSessionUpdatedAtMock,
@@ -564,6 +584,19 @@ beforeEach(() => {
564584loadSessionStoreMock.mockImplementation(() => sessionStoreEntries.value);
565585resolveStorePathMock.mockReset();
566586resolveStorePathMock.mockImplementation((storePath?: string) => storePath ?? sessionStorePath);
587+getSessionEntryMock.mockReset();
588+getSessionEntryMock.mockImplementation(({ storePath, sessionKey, agentId }) => {
589+const resolvedStorePath = storePath ?? resolveStorePathMock(undefined, { agentId });
590+return loadSessionStoreMock(resolvedStorePath)[sessionKey];
591+});
592+listSessionEntriesMock.mockReset();
593+listSessionEntriesMock.mockImplementation(({ storePath, agentId } = {}) => {
594+const resolvedStorePath = storePath ?? resolveStorePathMock(undefined, { agentId });
595+return Object.entries(loadSessionStoreMock(resolvedStorePath)).map(([sessionKey, entry]) => ({
596+ sessionKey,
597+ entry,
598+}));
599+});
567600readSessionUpdatedAtMock.mockReset();
568601readSessionUpdatedAtMock.mockReturnValue(undefined);
569602recordInboundSessionMock.mockReset();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。