cojson-transport-ws 0.20.17 → 0.20.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > cojson-transport-ws@0.20.17 build /home/runner/_work/jazz/jazz/packages/cojson-transport-ws
2
+ > cojson-transport-ws@0.20.19 build /home/runner/_work/classic-jazz/classic-jazz/packages/cojson-transport-ws
3
3
  > rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # cojson-transport-nodejs-ws
2
2
 
3
+ ## 0.20.19
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [dc43d1d]
8
+ - Updated dependencies [b13e956]
9
+ - cojson@0.20.19
10
+
11
+ ## 0.20.18
12
+
13
+ ### Patch Changes
14
+
15
+ - 12b27e1: Add opt-in experimental clock synchronisation from server pings.
16
+ - Updated dependencies [12b27e1]
17
+ - cojson@0.20.18
18
+
3
19
  ## 0.20.17
4
20
 
5
21
  ### Patch Changes
@@ -7,6 +7,7 @@ export declare class WebSocketPeerWithReconnection {
7
7
  private removePeer;
8
8
  private WebSocketConstructor;
9
9
  private pingTimeout;
10
+ private onPingReceived?;
10
11
  constructor(opts: {
11
12
  peer: string;
12
13
  reconnectionTimeout: number | undefined;
@@ -14,6 +15,10 @@ export declare class WebSocketPeerWithReconnection {
14
15
  removePeer: (peer: Peer) => void;
15
16
  WebSocketConstructor?: AnyWebSocketConstructor;
16
17
  pingTimeout?: number;
18
+ onPingReceived?: (sample: {
19
+ serverTime: number;
20
+ localReceiveTime: number;
21
+ }) => void;
17
22
  });
18
23
  enabled: boolean;
19
24
  closed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketPeerWithReconnection.d.ts","sourceRoot":"","sources":["../src/WebSocketPeerWithReconnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,6BAA6B;IACxC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;QAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;QACjC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC;QAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IASD,OAAO,UAAS;IAChB,MAAM,UAAQ;IAGd,SAAS,UAAS;IAElB,WAAW,EAAE,IAAI,GAAG,SAAS,CAAa;IAC1C,OAAO,CAAC,wBAAwB,CAAuC;IAIvE,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnE,OAAO,CAAC,aAAa;IAkBrB,oBAAoB,SAAK;IAEzB,2BAA2B,kBAAuB,OAAO,KAAK,IAAI,EAAI;IAEtE,kBAAkB,sBAahB;IAEF,SAAS,GAAI,UAAU,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,UAGjD;IAEF,WAAW,GAAI,UAAU,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,UAEnD;IAEF,eAAe,sBA8Cb;IAEF,MAAM,aAOJ;IAEF,OAAO,aAcL;CACH"}
1
+ {"version":3,"file":"WebSocketPeerWithReconnection.d.ts","sourceRoot":"","sources":["../src/WebSocketPeerWithReconnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,6BAA6B;IACxC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAGZ;gBAEC,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;QAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;QACjC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC;QAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,KAAK,IAAI,CAAC;KACZ;IAUD,OAAO,UAAS;IAChB,MAAM,UAAQ;IAGd,SAAS,UAAS;IAElB,WAAW,EAAE,IAAI,GAAG,SAAS,CAAa;IAC1C,OAAO,CAAC,wBAAwB,CAAuC;IAIvE,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnE,OAAO,CAAC,aAAa;IAkBrB,oBAAoB,SAAK;IAEzB,2BAA2B,kBAAuB,OAAO,KAAK,IAAI,EAAI;IAEtE,kBAAkB,sBAahB;IAEF,SAAS,GAAI,UAAU,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,UAGjD;IAEF,WAAW,GAAI,UAAU,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,UAEnD;IAEF,eAAe,sBA+Cb;IAEF,MAAM,aAOJ;IAEF,OAAO,aAcL;CACH"}
@@ -48,6 +48,7 @@ export class WebSocketPeerWithReconnection {
48
48
  pingTimeout: this.pingTimeout,
49
49
  id: this.peer,
50
50
  role: "server",
51
+ onPingReceived: this.onPingReceived,
51
52
  onClose: () => {
52
53
  this.closed = true;
53
54
  this.connected = false;
@@ -95,6 +96,7 @@ export class WebSocketPeerWithReconnection {
95
96
  this.removePeer = opts.removePeer;
96
97
  this.WebSocketConstructor = opts.WebSocketConstructor || WebSocket;
97
98
  this.pingTimeout = opts.pingTimeout || 10000;
99
+ this.onPingReceived = opts.onPingReceived;
98
100
  }
99
101
  // Basic implementation for environments that don't support network change events (e.g. Node.js)
100
102
  // Needs to be extended to handle platform specific APIs
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketPeerWithReconnection.js","sourceRoot":"","sources":["../src/WebSocketPeerWithReconnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketPeerWithReconnection.js","sourceRoot":"","sources":["../src/WebSocketPeerWithReconnection.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export type CreateWebSocketPeerOpts = {
18
18
  meter?: Meter;
19
19
  enablePingDelayLogs?: boolean;
20
20
  pingDelayLogsData?: Record<string, string | number>;
21
+ onPingReceived?: (sample: {
22
+ serverTime: number;
23
+ localReceiveTime: number;
24
+ }) => void;
21
25
  };
22
- export declare function createWebSocketPeer({ id, websocket, role, expectPings, batchingByDefault, deletePeerStateOnClose, pingTimeout, onSuccess, onClose, meter, meta, enablePingDelayLogs, pingDelayLogsData, }: CreateWebSocketPeerOpts): Peer;
26
+ export declare function createWebSocketPeer({ id, websocket, role, expectPings, batchingByDefault, deletePeerStateOnClose, pingTimeout, onSuccess, onClose, meter, meta, enablePingDelayLogs, pingDelayLogsData, onPingReceived, }: CreateWebSocketPeerOpts): Peer;
23
27
  //# sourceMappingURL=createWebSocketPeer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWebSocketPeer.d.ts","sourceRoot":"","sources":["../src/createWebSocketPeer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,KAAK,IAAI,EAA2B,MAAM,QAAQ,CAAC;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACrD,CAAC;AAyEF,wBAAgB,mBAAmB,CAAC,EAClC,EAAE,EACF,SAAS,EACT,IAAI,EACJ,WAAkB,EAClB,iBAAwB,EACxB,sBAA8B,EAC9B,WAAoB,EACpB,SAAS,EACT,OAAO,EACP,KAAK,EACL,IAAI,EACJ,mBAA2B,EAC3B,iBAAsB,GACvB,EAAE,uBAAuB,GAAG,IAAI,CA+IhC"}
1
+ {"version":3,"file":"createWebSocketPeer.d.ts","sourceRoot":"","sources":["../src/createWebSocketPeer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,KAAK,IAAI,EAA2B,MAAM,QAAQ,CAAC;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,KAAK,IAAI,CAAC;CACZ,CAAC;AAyEF,wBAAgB,mBAAmB,CAAC,EAClC,EAAE,EACF,SAAS,EACT,IAAI,EACJ,WAAkB,EAClB,iBAAwB,EACxB,sBAA8B,EAC9B,WAAoB,EACpB,SAAS,EACT,OAAO,EACP,KAAK,EACL,IAAI,EACJ,mBAA2B,EAC3B,iBAAsB,EACtB,cAAc,GACf,EAAE,uBAAuB,GAAG,IAAI,CAsJhC"}
@@ -56,7 +56,7 @@ function createClosedEventEmitter(callback = () => { }) {
56
56
  callback();
57
57
  };
58
58
  }
59
- export function createWebSocketPeer({ id, websocket, role, expectPings = true, batchingByDefault = true, deletePeerStateOnClose = false, pingTimeout = 10000, onSuccess, onClose, meter, meta, enablePingDelayLogs = false, pingDelayLogsData = {}, }) {
59
+ export function createWebSocketPeer({ id, websocket, role, expectPings = true, batchingByDefault = true, deletePeerStateOnClose = false, pingTimeout = 10000, onSuccess, onClose, meter, meta, enablePingDelayLogs = false, pingDelayLogsData = {}, onPingReceived, }) {
60
60
  const meterProvider = meter ?? metrics.getMeter("cojson-transport-ws");
61
61
  const ingressBytesCounter = meterProvider.createCounter("jazz.usage.ingress", {
62
62
  description: "Total ingress bytes from peer",
@@ -123,12 +123,18 @@ export function createWebSocketPeer({ id, websocket, role, expectPings = true, b
123
123
  if (!msg) {
124
124
  continue;
125
125
  }
126
- if (enablePingDelayLogs && "time" in msg) {
127
- logger.info("Ping delay", {
128
- delay: Math.max(0, Date.now() - msg.time),
129
- server: msg.dc,
130
- ...pingDelayLogsData,
126
+ if ("time" in msg) {
127
+ onPingReceived?.({
128
+ serverTime: msg.time,
129
+ localReceiveTime: Date.now(),
131
130
  });
131
+ if (enablePingDelayLogs) {
132
+ logger.info("Ping delay", {
133
+ delay: Math.max(0, Date.now() - msg.time),
134
+ server: msg.dc,
135
+ ...pingDelayLogsData,
136
+ });
137
+ }
132
138
  }
133
139
  if ("action" in msg) {
134
140
  incoming.push(msg);
@@ -1 +1 @@
1
- {"version":3,"file":"createWebSocketPeer.js","sourceRoot":"","sources":["../src/createWebSocketPeer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWebSocketPeer.js","sourceRoot":"","sources":["../src/createWebSocketPeer.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,46 @@ describe("createWebSocketPeer", () => {
103
103
  warnSpy.mockRestore();
104
104
  vi.useRealTimers();
105
105
  });
106
+ test("should invoke onPingReceived with server and local receive times", () => {
107
+ const nowSpy = vi.spyOn(Date, "now").mockReturnValue(1700000000500);
108
+ const onPingReceived = vi.fn();
109
+ const { triggerEvent } = setup({ onPingReceived });
110
+ triggerEvent("message", new MessageEvent("message", {
111
+ data: JSON.stringify({
112
+ type: "ping",
113
+ time: 1700000000000,
114
+ dc: "us-east-1",
115
+ }),
116
+ }));
117
+ expect(onPingReceived).toHaveBeenCalledTimes(1);
118
+ expect(onPingReceived).toHaveBeenCalledWith({
119
+ serverTime: 1700000000000,
120
+ localReceiveTime: 1700000000500,
121
+ });
122
+ nowSpy.mockRestore();
123
+ });
124
+ test("should not crash when ping is received without onPingReceived callback", () => {
125
+ const { triggerEvent } = setup();
126
+ expect(() => triggerEvent("message", new MessageEvent("message", {
127
+ data: JSON.stringify({
128
+ type: "ping",
129
+ time: 1700000000000,
130
+ dc: "us-east-1",
131
+ }),
132
+ }))).not.toThrow();
133
+ });
134
+ test("should invoke onPingReceived even when enablePingDelayLogs is false", () => {
135
+ const onPingReceived = vi.fn();
136
+ const { triggerEvent } = setup({ onPingReceived });
137
+ triggerEvent("message", new MessageEvent("message", {
138
+ data: JSON.stringify({
139
+ type: "ping",
140
+ time: 1700000000000,
141
+ dc: "eu-west-1",
142
+ }),
143
+ }));
144
+ expect(onPingReceived).toHaveBeenCalledTimes(1);
145
+ });
106
146
  test("should log ping delay when enabled", () => {
107
147
  const nowSpy = vi.spyOn(Date, "now").mockReturnValue(1000);
108
148
  const infoSpy = vi.spyOn(logger, "info").mockImplementation(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"createWebSocketPeer.test.js","sourceRoot":"","sources":["../../src/tests/createWebSocketPeer.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWebSocketPeer.test.js","sourceRoot":"","sources":["../../src/tests/createWebSocketPeer.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "cojson-transport-ws",
3
3
  "type": "module",
4
- "version": "0.20.17",
4
+ "version": "0.20.19",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
9
  "@opentelemetry/api": "^1.9.0",
10
- "cojson": "0.20.17"
10
+ "cojson": "0.20.19"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@opentelemetry/sdk-metrics": "^2.0.0",
@@ -9,6 +9,10 @@ export class WebSocketPeerWithReconnection {
9
9
  private removePeer: (peer: Peer) => void;
10
10
  private WebSocketConstructor: AnyWebSocketConstructor;
11
11
  private pingTimeout: number;
12
+ private onPingReceived?: (sample: {
13
+ serverTime: number;
14
+ localReceiveTime: number;
15
+ }) => void;
12
16
 
13
17
  constructor(opts: {
14
18
  peer: string;
@@ -17,6 +21,10 @@ export class WebSocketPeerWithReconnection {
17
21
  removePeer: (peer: Peer) => void;
18
22
  WebSocketConstructor?: AnyWebSocketConstructor;
19
23
  pingTimeout?: number;
24
+ onPingReceived?: (sample: {
25
+ serverTime: number;
26
+ localReceiveTime: number;
27
+ }) => void;
20
28
  }) {
21
29
  this.peer = opts.peer;
22
30
  this.reconnectionTimeout = opts.reconnectionTimeout || 500;
@@ -24,6 +32,7 @@ export class WebSocketPeerWithReconnection {
24
32
  this.removePeer = opts.removePeer;
25
33
  this.WebSocketConstructor = opts.WebSocketConstructor || WebSocket;
26
34
  this.pingTimeout = opts.pingTimeout || 10_000;
35
+ this.onPingReceived = opts.onPingReceived;
27
36
  }
28
37
 
29
38
  enabled = false;
@@ -113,6 +122,7 @@ export class WebSocketPeerWithReconnection {
113
122
  pingTimeout: this.pingTimeout,
114
123
  id: this.peer,
115
124
  role: "server",
125
+ onPingReceived: this.onPingReceived,
116
126
  onClose: () => {
117
127
  this.closed = true;
118
128
  this.connected = false;
@@ -23,6 +23,10 @@ export type CreateWebSocketPeerOpts = {
23
23
  meter?: Meter;
24
24
  enablePingDelayLogs?: boolean;
25
25
  pingDelayLogsData?: Record<string, string | number>;
26
+ onPingReceived?: (sample: {
27
+ serverTime: number;
28
+ localReceiveTime: number;
29
+ }) => void;
26
30
  };
27
31
 
28
32
  function createPingTimeoutListener(
@@ -110,6 +114,7 @@ export function createWebSocketPeer({
110
114
  meta,
111
115
  enablePingDelayLogs = false,
112
116
  pingDelayLogsData = {},
117
+ onPingReceived,
113
118
  }: CreateWebSocketPeerOpts): Peer {
114
119
  const meterProvider = meter ?? metrics.getMeter("cojson-transport-ws");
115
120
 
@@ -209,12 +214,19 @@ export function createWebSocketPeer({
209
214
  continue;
210
215
  }
211
216
 
212
- if (enablePingDelayLogs && "time" in msg) {
213
- logger.info("Ping delay", {
214
- delay: Math.max(0, Date.now() - msg.time),
215
- server: msg.dc,
216
- ...pingDelayLogsData,
217
+ if ("time" in msg) {
218
+ onPingReceived?.({
219
+ serverTime: msg.time,
220
+ localReceiveTime: Date.now(),
217
221
  });
222
+
223
+ if (enablePingDelayLogs) {
224
+ logger.info("Ping delay", {
225
+ delay: Math.max(0, Date.now() - msg.time),
226
+ server: msg.dc,
227
+ ...pingDelayLogsData,
228
+ });
229
+ }
218
230
  }
219
231
 
220
232
  if ("action" in msg) {
@@ -153,6 +153,66 @@ describe("createWebSocketPeer", () => {
153
153
  vi.useRealTimers();
154
154
  });
155
155
 
156
+ test("should invoke onPingReceived with server and local receive times", () => {
157
+ const nowSpy = vi.spyOn(Date, "now").mockReturnValue(1_700_000_000_500);
158
+ const onPingReceived = vi.fn();
159
+ const { triggerEvent } = setup({ onPingReceived });
160
+
161
+ triggerEvent(
162
+ "message",
163
+ new MessageEvent("message", {
164
+ data: JSON.stringify({
165
+ type: "ping",
166
+ time: 1_700_000_000_000,
167
+ dc: "us-east-1",
168
+ }),
169
+ }),
170
+ );
171
+
172
+ expect(onPingReceived).toHaveBeenCalledTimes(1);
173
+ expect(onPingReceived).toHaveBeenCalledWith({
174
+ serverTime: 1_700_000_000_000,
175
+ localReceiveTime: 1_700_000_000_500,
176
+ });
177
+
178
+ nowSpy.mockRestore();
179
+ });
180
+
181
+ test("should not crash when ping is received without onPingReceived callback", () => {
182
+ const { triggerEvent } = setup();
183
+
184
+ expect(() =>
185
+ triggerEvent(
186
+ "message",
187
+ new MessageEvent("message", {
188
+ data: JSON.stringify({
189
+ type: "ping",
190
+ time: 1_700_000_000_000,
191
+ dc: "us-east-1",
192
+ }),
193
+ }),
194
+ ),
195
+ ).not.toThrow();
196
+ });
197
+
198
+ test("should invoke onPingReceived even when enablePingDelayLogs is false", () => {
199
+ const onPingReceived = vi.fn();
200
+ const { triggerEvent } = setup({ onPingReceived });
201
+
202
+ triggerEvent(
203
+ "message",
204
+ new MessageEvent("message", {
205
+ data: JSON.stringify({
206
+ type: "ping",
207
+ time: 1_700_000_000_000,
208
+ dc: "eu-west-1",
209
+ }),
210
+ }),
211
+ );
212
+
213
+ expect(onPingReceived).toHaveBeenCalledTimes(1);
214
+ });
215
+
156
216
  test("should log ping delay when enabled", () => {
157
217
  const nowSpy = vi.spyOn(Date, "now").mockReturnValue(1_000);
158
218
  const infoSpy = vi.spyOn(logger, "info").mockImplementation(() => {});