From 55a4f1fc869e41aca748c63d3018f0448b1606e0 Mon Sep 17 00:00:00 2001 From: pack Date: Sun, 9 Aug 2026 10:37:07 +0000 Subject: first commit --- .../src/jitter/full/full.jitter.spec.ts | 31 ++++++++++++++++++++++ .../src/jitter/full/full.jitter.ts | 4 +++ 2 files changed, 35 insertions(+) create mode 100644 node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts create mode 100644 node_modules/exponential-backoff/src/jitter/full/full.jitter.ts (limited to 'node_modules/exponential-backoff/src/jitter/full') diff --git a/node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts b/node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts new file mode 100644 index 0000000..003d08d --- /dev/null +++ b/node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts @@ -0,0 +1,31 @@ +import { fullJitter } from './full.jitter'; + +describe(`Testing ${fullJitter.name}`, () => { + const delay = 100; + + function arrayWith5FullJitterDelays() { + return Array(5).fill(delay).map(fullJitter) + } + + describe(`when calling #fullJitter on the same delay multiple times`, () => { + it('all the delays are greater than or equal to 0', () => { + arrayWith5FullJitterDelays() + .forEach(value => expect(value).toBeGreaterThanOrEqual(0)); + }) + + it('all the delays are less than or equal to the original delay', () => { + arrayWith5FullJitterDelays() + .forEach(value => expect(value).toBeLessThanOrEqual(delay)); + }) + + it('the delays are not equal to one another', () => { + const delays = arrayWith5FullJitterDelays(); + expect(new Set(delays).size).not.toBe(1); + }) + + it('the delays are integers', () => { + arrayWith5FullJitterDelays() + .forEach(value => expect(Number.isInteger(value)).toBe(true)) + }) + }) +}) \ No newline at end of file diff --git a/node_modules/exponential-backoff/src/jitter/full/full.jitter.ts b/node_modules/exponential-backoff/src/jitter/full/full.jitter.ts new file mode 100644 index 0000000..b3c447b --- /dev/null +++ b/node_modules/exponential-backoff/src/jitter/full/full.jitter.ts @@ -0,0 +1,4 @@ +export function fullJitter(delay: number) { + const jitteredDelay = Math.random() * delay; + return Math.round(jitteredDelay); +} \ No newline at end of file -- cgit v1.2.3