From 55053e4e4600e2a6da1d39b23ff469800e1da767 Mon Sep 17 00:00:00 2001 From: Sonia_Sandler Date: Mon, 3 Nov 2025 12:56:59 -0500 Subject: [PATCH] chore: remove github-authentication-sessions entry from secrets when there are no sessions Signed-off-by: Sonia_Sandler --- src/provider-session-manager.spec.ts | 11 +++++++++++ src/provider-session-manager.ts | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/provider-session-manager.spec.ts b/src/provider-session-manager.spec.ts index b0d609a..b380113 100644 --- a/src/provider-session-manager.spec.ts +++ b/src/provider-session-manager.spec.ts @@ -34,6 +34,7 @@ const extensionContextMock: extensionApi.ExtensionContext = { secrets: { get: vi.fn<(key: string) => Promise>(), store: vi.fn<(key: string, value: string) => Promise>(), + delete: vi.fn<(key: string) => Promise>(), }, } as unknown as extensionApi.ExtensionContext; @@ -165,3 +166,13 @@ test('saveSessions', async () => { expect(extensionContextMock.secrets.store).toHaveBeenCalledWith(AUTHENTICATION_SESSIONS_KEY, JSON.stringify([sessionsMock[0]])); }); + +test('saveSessions with no sessions', async () => { + // make sure that there are no sessions saved + const currentSessions = await sessionManager.getSessions(); + expect(currentSessions).toEqual([]); + + await sessionManager.saveSessions(); + + expect(extensionContextMock.secrets.delete).toHaveBeenCalledWith(AUTHENTICATION_SESSIONS_KEY); +}); diff --git a/src/provider-session-manager.ts b/src/provider-session-manager.ts index abcda1d..28d112e 100644 --- a/src/provider-session-manager.ts +++ b/src/provider-session-manager.ts @@ -107,6 +107,10 @@ export class ProviderSessionManager { } async saveSessions(): Promise { - await this.extensionContext.secrets.store(AUTHENTICATION_SESSIONS_KEY, JSON.stringify(this.ghSessions)); + if (this.ghSessions.length === 0) { + await this.extensionContext.secrets.delete(AUTHENTICATION_SESSIONS_KEY); + } else { + await this.extensionContext.secrets.store(AUTHENTICATION_SESSIONS_KEY, JSON.stringify(this.ghSessions)); + } } }