@@ -12,6 +12,9 @@ type AnyMock = ReturnType<typeof vi.fn>;
1212type AnyAsyncMock = ReturnType < typeof vi . fn < ( ...args : unknown [ ] ) => Promise < unknown > > > ;
1313type GetRuntimeConfigFn =
1414 typeof 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 =
1619 typeof import ( "openclaw/plugin-sdk/session-store-runtime" ) . loadSessionStore ;
1720type ResolveStorePathFn =
@@ -61,28 +64,43 @@ vi.mock("openclaw/plugin-sdk/web-media", () => ({
6164} ) ) ;
6265
6366const {
67+ getSessionEntryMock,
6468 getRuntimeConfig,
69+ listSessionEntriesMock,
6570 loadSessionStoreMock,
6671 readSessionUpdatedAtMock,
6772 recordInboundSessionMock,
6873 resolveStorePathMock,
6974 sessionStoreEntries,
7075} = vi . hoisted (
7176 ( ) : {
77+ getSessionEntryMock : MockFn < GetSessionEntryFn > ;
7278 getRuntimeConfig : MockFn < GetRuntimeConfigFn > ;
79+ listSessionEntriesMock : MockFn < ListSessionEntriesFn > ;
7380 loadSessionStoreMock : MockFn < LoadSessionStoreFn > ;
7481 readSessionUpdatedAtMock : MockFn < ReadSessionUpdatedAtFn > ;
7582 recordInboundSessionMock : MockFn < NonNullable < TelegramBotDeps [ "recordInboundSession" ] > > ;
7683 resolveStorePathMock : MockFn < ResolveStorePathFn > ;
7784 sessionStoreEntries : { value : SessionStore } ;
7885 } => ( {
7986 getRuntimeConfig : vi . fn < GetRuntimeConfigFn > ( ( ) => ( { } ) ) ,
80- loadSessionStoreMock : vi . fn < LoadSessionStoreFn > (
81- ( _storePath , _opts ) => sessionStoreEntries . value ,
82- ) ,
8387 resolveStorePathMock : 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+ } ) ,
86104 readSessionUpdatedAtMock : vi . fn < ReadSessionUpdatedAtFn > ( ( ) => undefined ) ,
87105 recordInboundSessionMock : vi . fn ( async ( ) => undefined ) ,
88106 sessionStoreEntries : { value : { } as SessionStore } ,
@@ -444,6 +462,8 @@ export const telegramBotRuntimeForTest: TelegramBotRuntimeForTest = {
444462} ;
445463export const telegramBotDepsForTest : TelegramBotDeps = {
446464 getRuntimeConfig,
465+ getSessionEntry : getSessionEntryMock ,
466+ listSessionEntries : listSessionEntriesMock ,
447467 loadSessionStore : loadSessionStoreMock as TelegramBotDeps [ "loadSessionStore" ] ,
448468 resolveStorePath : resolveStorePathMock ,
449469 readSessionUpdatedAt : readSessionUpdatedAtMock ,
@@ -564,6 +584,19 @@ beforeEach(() => {
564584 loadSessionStoreMock . mockImplementation ( ( ) => sessionStoreEntries . value ) ;
565585 resolveStorePathMock . mockReset ( ) ;
566586 resolveStorePathMock . 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+ } ) ;
567600 readSessionUpdatedAtMock . mockReset ( ) ;
568601 readSessionUpdatedAtMock . mockReturnValue ( undefined ) ;
569602 recordInboundSessionMock . mockReset ( ) ;
0 commit comments