From 7702515c53221ea3e82deb3aacc33c8a32d2485f Mon Sep 17 00:00:00 2001 From: Levis Mbote <111055098+LevisNgigi@users.noreply.github.com> Date: Fri, 2 Jan 2026 14:59:27 +0300 Subject: [PATCH] fix(logout): clicking logout displays an error notification "invalid username or password" (#36490) --- superset-frontend/src/features/home/RightMenu.test.tsx | 7 +++++-- superset-frontend/src/features/home/RightMenu.tsx | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/superset-frontend/src/features/home/RightMenu.test.tsx b/superset-frontend/src/features/home/RightMenu.test.tsx index e56df38dbde..e98bf32d427 100644 --- a/superset-frontend/src/features/home/RightMenu.test.tsx +++ b/superset-frontend/src/features/home/RightMenu.test.tsx @@ -372,9 +372,11 @@ test('Logs out and clears local storage item redux', async () => { useTheme: true, }); - // Set an item in local storage to test if it gets cleared + // Set items in local and session storage to test if they get cleared localStorage.setItem('redux', JSON.stringify({ test: 'test' })); + sessionStorage.setItem('login_attempted', 'true'); expect(localStorage.getItem('redux')).not.toBeNull(); + expect(sessionStorage.getItem('login_attempted')).not.toBeNull(); userEvent.hover(await screen.findByText(/Settings/i)); @@ -384,8 +386,9 @@ test('Logs out and clears local storage item redux', async () => { userEvent.click(logoutButton); }); - // Wait for local storage to be cleared + // Wait for local and session storage to be cleared await waitFor(() => { expect(localStorage.getItem('redux')).toBeNull(); + expect(sessionStorage.getItem('login_attempted')).toBeNull(); }); }); diff --git a/superset-frontend/src/features/home/RightMenu.tsx b/superset-frontend/src/features/home/RightMenu.tsx index 03194610eec..29ecf0d7f4d 100644 --- a/superset-frontend/src/features/home/RightMenu.tsx +++ b/superset-frontend/src/features/home/RightMenu.tsx @@ -342,7 +342,12 @@ const RightMenu = ({ const handleDatabaseAdd = () => setQuery({ databaseAdded: true }); const handleLogout = () => { - localStorage.removeItem('redux'); + try { + window.localStorage.removeItem('redux'); + window.sessionStorage.removeItem('login_attempted'); + } catch (error) { + console.warn('Failed to clear storage on logout:', error); + } }; // Use the theme menu hook