aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/exponential-backoff/src/jitter/full
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts31
-rw-r--r--node_modules/exponential-backoff/src/jitter/full/full.jitter.ts4
2 files changed, 35 insertions, 0 deletions
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