admin/lib/refreshTokenExpiry.test.ts
alisaza e1eaf5eff5 feat: initial ghabilee-admin backoffice app
Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js
app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
2026-09-05 13:12:59 +03:30

27 lines
943 B
TypeScript

import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { parseRefreshExpiry, REFRESH_COOKIE_DAYS } from '@/lib/refreshTokenExpiry'
describe('parseRefreshExpiry', () => {
beforeEach(() => {
vi.useFakeTimers()
vi.setSystemTime(new Date('2026-01-01T00:00:00.000Z'))
})
afterEach(() => {
vi.useRealTimers()
})
it('uses the server-provided expiresAt when it is a valid date string', () => {
expect(parseRefreshExpiry('2026-02-01T00:00:00.000Z')).toBe(Date.parse('2026-02-01T00:00:00.000Z'))
})
it('falls back to REFRESH_COOKIE_DAYS from now when expiresAt is missing', () => {
expect(parseRefreshExpiry(undefined)).toBe(Date.now() + REFRESH_COOKIE_DAYS * 24 * 60 * 60 * 1000)
})
it('falls back to REFRESH_COOKIE_DAYS from now when expiresAt is unparsable', () => {
expect(parseRefreshExpiry('not-a-date')).toBe(Date.now() + REFRESH_COOKIE_DAYS * 24 * 60 * 60 * 1000)
})
})