feat(web): add /machinery/logout (#177)

This commit is contained in:
41666 2021-03-14 15:09:52 -04:00 committed by GitHub
parent 410e27c2b3
commit 0c586404e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 0 deletions

View file

@ -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 = () => {
<RouteWrapper component={PickerPage} path="/s/:serverID" />
<RouteWrapper component={MachineryNewSession} path="/machinery/new-session" />
<RouteWrapper component={MachineryLogout} path="/machinery/logout" />
<RouteWrapper component={AuthLogin} path="/auth/login" />
<RouteWrapper component={DevToolsSetApi} path="/x/dev-tools/set-api" />

View file

@ -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(<Logout />);
expect(localStorage.getItem('rp_session_key')).toBeNull();
expect(sessionStorage.getItem('rp_session_data')).toBeNull();
});

View file

@ -0,0 +1,13 @@
import React from 'react';
const Logout = () => {
React.useEffect(() => {
localStorage.removeItem('rp_session_key');
sessionStorage.clear();
window.location.href = '/';
}, []);
return <div>Logging you out...</div>;
};
export default Logout;