sinka/api/src/auth/cookies.spec.ts
2026-09-15 22:00:43 -03:00

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 }));
});
});