From 6bb799dbfca47f97568d375e5a0ec2d5943d9ced Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 7 May 2026 10:56:03 +0200 Subject: [PATCH] test reconnecting stats in CallEnded event --- src/analytics/PosthogEvents.test.ts | 30 ++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/analytics/PosthogEvents.test.ts b/src/analytics/PosthogEvents.test.ts index 8d17084b..d14e9dc2 100644 --- a/src/analytics/PosthogEvents.test.ts +++ b/src/analytics/PosthogEvents.test.ts @@ -18,7 +18,11 @@ import { logger } from "matrix-js-sdk/lib/logger"; import { type MatrixRTCSession } from "matrix-js-sdk/lib/matrixrtc"; import { PosthogAnalytics } from "./PosthogAnalytics"; -import { CallEndedTracker } from "./PosthogEvents"; +import { + CallEndedTracker, + CallReconnectingTracker, + type CallReconnectingReason, +} from "./PosthogEvents"; import { mockConfig } from "../utils/test"; const defaultCounters = { @@ -164,4 +168,28 @@ describe("CallEnded", () => { { send_instantly: false }, ); }); + + it("includes per-reason reconnecting counts in CallEnded", () => { + const tracker = new CallEndedTracker(); + const mockSession = createMockRtcSession(); + + tracker.cacheStartCall(new Date()); + tracker.cacheReconnecting("syncing"); + tracker.cacheReconnecting("syncing"); + tracker.cacheReconnecting("livekit"); + tracker.cacheReconnecting("membershipConnected"); + tracker.track("test-call-id", 1, false, mockSession); + + expect(PosthogAnalytics.instance.trackEvent).toHaveBeenCalledWith( + expect.objectContaining({ + callReconnectingCount: 4, + callReconnectingCountSyncing: 2, + callReconnectingCountMembershipConnected: 1, + callReconnectingCountCertainlyConnected: 0, + callReconnectingCountLivekit: 1, + }), + expect.anything(), + ); + }); +}); });