Files
standardnotes-app-web/packages/snjs/lib/Services/Sync/SyncFrequencyGuard.spec.ts
2024-01-11 15:26:09 +01:00

39 lines
1.2 KiB
TypeScript

import { SyncFrequencyGuard } from './SyncFrequencyGuard'
describe('SyncFrequencyGuard', () => {
const createUseCase = () => new SyncFrequencyGuard(3)
it('should return false when sync calls threshold is not reached', () => {
const useCase = createUseCase()
expect(useCase.isSyncCallsThresholdReachedThisMinute()).toBe(false)
})
it('should return true when sync calls threshold is reached', () => {
const useCase = createUseCase()
useCase.incrementCallsPerMinute()
useCase.incrementCallsPerMinute()
useCase.incrementCallsPerMinute()
expect(useCase.isSyncCallsThresholdReachedThisMinute()).toBe(true)
})
it('should return false when sync calls threshold is reached but a new minute has started', () => {
const spyOnGetCallsPerMinuteKey = jest.spyOn(SyncFrequencyGuard.prototype as any, 'getCallsPerMinuteKey')
spyOnGetCallsPerMinuteKey.mockReturnValueOnce('2020-1-1T1:1')
const useCase = createUseCase()
useCase.incrementCallsPerMinute()
useCase.incrementCallsPerMinute()
useCase.incrementCallsPerMinute()
spyOnGetCallsPerMinuteKey.mockReturnValueOnce('2020-1-1T1:2')
expect(useCase.isSyncCallsThresholdReachedThisMinute()).toBe(false)
spyOnGetCallsPerMinuteKey.mockRestore()
})
})