Require accessToken to browse pages
This commit is contained in:
committed by
Anders Borch
parent
4655544197
commit
049664b98e
32
front/src/hooks/auth/__tests__/useHasAccessToken.test.tsx
Normal file
32
front/src/hooks/auth/__tests__/useHasAccessToken.test.tsx
Normal file
@ -0,0 +1,32 @@
|
||||
import { render, waitFor } from '@testing-library/react';
|
||||
import { useHasAccessToken } from '../useHasAccessToken';
|
||||
|
||||
function TestComponent() {
|
||||
const hasAccessToken = useHasAccessToken();
|
||||
|
||||
return (
|
||||
<div>{hasAccessToken && <div data-testid="has-access-token"></div>}</div>
|
||||
);
|
||||
}
|
||||
|
||||
test('useHasAccessToken works properly if access token is present', async () => {
|
||||
localStorage.setItem('accessToken', 'test-access-token');
|
||||
const { getByTestId } = render(<TestComponent />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(getByTestId('has-access-token')).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
test('useHasAccessToken works properly if access token is not present', async () => {
|
||||
localStorage.removeItem('accessToken');
|
||||
const { container } = render(<TestComponent />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(container.firstChild).toBeEmptyDOMElement();
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
@ -1,25 +1,6 @@
|
||||
import { render, waitFor } from '@testing-library/react';
|
||||
import { useRefreshToken } from '../useRefreshToken';
|
||||
|
||||
const localStorageMock = (function () {
|
||||
let store: { [key: string]: string } = {};
|
||||
return {
|
||||
getItem: function (key: string) {
|
||||
return store[key];
|
||||
},
|
||||
setItem: function (key: string, value: string) {
|
||||
store[key] = value.toString();
|
||||
},
|
||||
clear: function () {
|
||||
store = {};
|
||||
},
|
||||
removeItem: function (key: string) {
|
||||
delete store[key];
|
||||
},
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(window, 'localStorage', { value: localStorageMock });
|
||||
|
||||
function TestComponent() {
|
||||
const { loading } = useRefreshToken();
|
||||
|
||||
@ -47,10 +28,11 @@ test('useRefreshToken works properly', async () => {
|
||||
render(<TestComponent />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(localStorageMock.getItem('accessToken')).toBe('test-access-token');
|
||||
expect(localStorage.getItem('accessToken')).toBe('test-access-token');
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
localStorage.removeItem('refreshToken');
|
||||
});
|
||||
|
||||
5
front/src/hooks/auth/useHasAccessToken.tsx
Normal file
5
front/src/hooks/auth/useHasAccessToken.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
export const useHasAccessToken = () => {
|
||||
const accessToken = localStorage.getItem('accessToken');
|
||||
|
||||
return accessToken ? true : false;
|
||||
};
|
||||
Reference in New Issue
Block a user