31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { clearAuthCookies, readRefreshCookie, setAuthCookies } from './cookies';
|
|
|
|
describe('auth cookies', () => {
|
|
it('sets httpOnly access and refresh cookies', () => {
|
|
const cookie = jest.fn();
|
|
setAuthCookies({ cookie } as never, 'access', 'refresh');
|
|
expect(cookie).toHaveBeenCalledWith(
|
|
'sinka_access',
|
|
'access',
|
|
expect.objectContaining({ httpOnly: true, sameSite: 'lax', path: '/' }),
|
|
);
|
|
expect(cookie).toHaveBeenCalledWith(
|
|
'sinka_refresh',
|
|
'refresh',
|
|
expect.objectContaining({ httpOnly: true }),
|
|
);
|
|
});
|
|
|
|
it('reads only the refresh cookie', () => {
|
|
expect(readRefreshCookie({ sinka_refresh: 'abc', other: 'x' })).toBe('abc');
|
|
expect(readRefreshCookie(undefined)).toBeUndefined();
|
|
});
|
|
|
|
it('clears both cookies on logout', () => {
|
|
const clearCookie = jest.fn();
|
|
clearAuthCookies({ clearCookie } as never);
|
|
expect(clearCookie).toHaveBeenCalledWith('sinka_access', expect.objectContaining({ httpOnly: true }));
|
|
expect(clearCookie).toHaveBeenCalledWith('sinka_refresh', expect.objectContaining({ httpOnly: true }));
|
|
});
|
|
});
|