From 538f54340705e11690453684089b05a524d3e34b Mon Sep 17 00:00:00 2001 From: Katalina Okano Date: Sun, 14 Mar 2021 14:57:21 -0400 Subject: [PATCH] feat(web): add /machinery/logout --- packages/web/src/app-router/AppRouter.tsx | 2 ++ packages/web/src/pages/machinery/logout.spec.tsx | 15 +++++++++++++++ packages/web/src/pages/machinery/logout.tsx | 13 +++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 packages/web/src/pages/machinery/logout.spec.tsx create mode 100644 packages/web/src/pages/machinery/logout.tsx diff --git a/packages/web/src/app-router/AppRouter.tsx b/packages/web/src/app-router/AppRouter.tsx index 8420c70..ad7d83b 100644 --- a/packages/web/src/app-router/AppRouter.tsx +++ b/packages/web/src/app-router/AppRouter.tsx @@ -7,6 +7,7 @@ const PickerPage = React.lazy(() => import('../pages/picker')); const AuthLogin = React.lazy(() => import('../pages/auth/login')); const MachineryNewSession = React.lazy(() => import('../pages/machinery/new-session')); +const MachineryLogout = React.lazy(() => import('../pages/machinery/logout')); const DevToolsSetApi = React.lazy(() => import('../pages/dev-tools/set-api')); const DevToolsSessionDebug = React.lazy(() => import('../pages/dev-tools/session-debug')); @@ -29,6 +30,7 @@ export const AppRouter = () => { + diff --git a/packages/web/src/pages/machinery/logout.spec.tsx b/packages/web/src/pages/machinery/logout.spec.tsx new file mode 100644 index 0000000..0c963e9 --- /dev/null +++ b/packages/web/src/pages/machinery/logout.spec.tsx @@ -0,0 +1,15 @@ +import { render } from '@testing-library/react'; +import Logout from './logout'; + +it('removes session state from storage', () => { + localStorage.setItem('rp_session_key', 'sessionKey'); + sessionStorage.setItem( + 'rp_session_data', + JSON.stringify({ user: { name: 'okano', discriminator: '0001' }, guilds: [] }) + ); + + render(); + + expect(localStorage.getItem('rp_session_key')).toBeNull(); + expect(sessionStorage.getItem('rp_session_data')).toBeNull(); +}); diff --git a/packages/web/src/pages/machinery/logout.tsx b/packages/web/src/pages/machinery/logout.tsx new file mode 100644 index 0000000..9c6e9f5 --- /dev/null +++ b/packages/web/src/pages/machinery/logout.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +const Logout = () => { + React.useEffect(() => { + localStorage.removeItem('rp_session_key'); + sessionStorage.clear(); + window.location.href = '/'; + }, []); + + return
Logging you out...
; +}; + +export default Logout;