FRE-600: Fix code review blockers

- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-25 00:08:01 -04:00
parent 65b552bb08
commit 7c684a42cc
48450 changed files with 5679671 additions and 383 deletions

View File

@@ -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))
})
})
})

View File

@@ -0,0 +1,4 @@
export function fullJitter(delay: number) {
const jitteredDelay = Math.random() * delay;
return Math.round(jitteredDelay);
}

View File

@@ -0,0 +1,16 @@
import { IBackOffOptions } from "../options";
import { fullJitter } from "./full/full.jitter";
import { noJitter } from "./no/no.jitter";
export type Jitter = (delay: number) => number;
export function JitterFactory(options: IBackOffOptions): Jitter {
switch (options.jitter) {
case "full":
return fullJitter;
case "none":
default:
return noJitter;
}
}

View File

@@ -0,0 +1,9 @@
import { noJitter } from './no.jitter';
describe(`Testing ${noJitter.name}`, () => {
it(`when calling #noJitter with a delay,
it returns the same delay`, () => {
const delay = 100;
expect(noJitter(delay)).toBe(delay);
})
})

View File

@@ -0,0 +1,3 @@
export function noJitter(delay: number) {
return delay;
}