@toptal/davinci-cloudflare-requests-handler
Version:
Toptal Cloudflare requests handler
86 lines (57 loc) • 2.1 kB
text/typescript
import * as localStorage from '../utils/local-storage'
import { getNumberOfRetries, getLastRetryDate } from './retries'
describe('getNumberOfRetries', () => {
let getLocalStorageItemSpy: jest.SpyInstance<string | null, [key: string]>
beforeEach(() => {
getLocalStorageItemSpy = jest.spyOn(localStorage, 'getItem')
})
afterEach(() => {
jest.restoreAllMocks()
})
it('returns 0 if value was not found in localStorage', () => {
getLocalStorageItemSpy.mockReturnValueOnce(null)
const result = getNumberOfRetries()
expect(result).toBe(0)
})
it('returns 0 if value is 0', () => {
getLocalStorageItemSpy.mockReturnValueOnce('0')
const result = getNumberOfRetries()
expect(result).toBe(0)
})
it('returns number value if value is defined', () => {
getLocalStorageItemSpy.mockReturnValueOnce('6')
const result = getNumberOfRetries()
expect(result).toBe(6)
})
it('returns 0 value if value is not a number', () => {
getLocalStorageItemSpy.mockReturnValueOnce('aaabbb')
const result = getNumberOfRetries()
expect(result).toBe(0)
})
})
describe('getLastRetryDate', () => {
const minDate = new Date(0)
let getLocalStorageItemSpy: jest.SpyInstance<string | null, [key: string]>
beforeEach(() => {
getLocalStorageItemSpy = jest.spyOn(localStorage, 'getItem')
})
afterEach(() => {
jest.restoreAllMocks()
})
it('returns min date if value was not found in localStorage', () => {
getLocalStorageItemSpy.mockReturnValueOnce(null)
const result = getLastRetryDate()
expect(result?.getTime()).toBe(minDate.getTime())
})
it('returns date value if value is defined', () => {
const currentDate = Date.now()
getLocalStorageItemSpy.mockReturnValueOnce(String(currentDate))
const result = getLastRetryDate()
expect(result?.getTime()).toBe(currentDate)
})
it('returns 0 value if value is not a number', () => {
getLocalStorageItemSpy.mockReturnValueOnce('aaabbb')
const result = getLastRetryDate()
expect(result?.getTime()).toBe(minDate.getTime())
})
})