fix(session-manager): fall back to file storage on SDK outages

This commit is contained in:
YeonGyu-Kim
2026-04-04 16:42:51 +09:00
parent 119db367de
commit e40d3fb37a
6 changed files with 584 additions and 297 deletions
+5 -9
View File
@@ -374,9 +374,9 @@ describe("session-manager storage - getMainSessions", () => {
describe("session-manager storage - SDK path (beta mode)", () => {
const mockClient = {
session: {
list: mock(() => Promise.resolve({ data: [] })),
messages: mock(() => Promise.resolve({ data: [] })),
todo: mock(() => Promise.resolve({ data: [] })),
list: mock((): Promise<unknown> => Promise.resolve({ data: [] })),
messages: mock((): Promise<unknown> => Promise.resolve({ data: [] })),
todo: mock((): Promise<unknown> => Promise.resolve({ data: [] })),
},
}
@@ -500,7 +500,7 @@ describe("session-manager storage - SDK path (beta mode)", () => {
expect(todos[1].status).toBe("completed")
})
test("SDK path returns empty array on error", async () => {
test("SDK path rethrows non-transport errors", async () => {
// given
mockClient.session.messages.mockImplementation(() => Promise.reject(new Error("API error")))
@@ -512,11 +512,7 @@ describe("session-manager storage - SDK path (beta mode)", () => {
const { setStorageClient, readSessionMessages } = await import("./storage")
setStorageClient(mockClient as unknown as Parameters<typeof setStorageClient>[0])
// when
const messages = await readSessionMessages("ses_test")
// then
expect(messages).toEqual([])
await expect(readSessionMessages("ses_test")).rejects.toThrow("API error")
})
test("SDK path returns empty array when client is not set", async () => {