From a7b359d319e459443bebf784fb975f2776f691e6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 8 May 2026 18:36:55 +0100 Subject: [PATCH] test: require channel lifecycle starters --- .../nextcloud-talk/src/channel.lifecycle.test.ts | 14 ++++++++++++-- extensions/zalo/src/channel.startup.test.ts | 13 ++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/extensions/nextcloud-talk/src/channel.lifecycle.test.ts b/extensions/nextcloud-talk/src/channel.lifecycle.test.ts index 2c0cb17b39f..9ad5f348f45 100644 --- a/extensions/nextcloud-talk/src/channel.lifecycle.test.ts +++ b/extensions/nextcloud-talk/src/channel.lifecycle.test.ts @@ -17,6 +17,16 @@ vi.mock("./monitor-runtime.js", () => ({ const { nextcloudTalkGatewayAdapter } = await import("./gateway.js"); +type NextcloudTalkStartAccount = NonNullable; + +function requireStartAccount(): NextcloudTalkStartAccount { + const startAccount = nextcloudTalkGatewayAdapter.startAccount; + if (!startAccount) { + throw new Error("Expected Nextcloud Talk gateway startAccount"); + } + return startAccount; +} + function buildAccount(): ResolvedNextcloudTalkAccount { return { accountId: "default", @@ -40,7 +50,7 @@ function mockStartedMonitor() { } function startNextcloudAccount(abortSignal?: AbortSignal) { - return nextcloudTalkGatewayAdapter.startAccount!( + return requireStartAccount()( createStartAccountContext({ account: buildAccount(), abortSignal, @@ -56,7 +66,7 @@ describe("nextcloud-talk startAccount lifecycle", () => { it("keeps startAccount pending until abort, then stops the monitor", async () => { const stop = mockStartedMonitor(); const { abort, task, isSettled } = startAccountAndTrackLifecycle({ - startAccount: nextcloudTalkGatewayAdapter.startAccount!, + startAccount: requireStartAccount(), account: buildAccount(), }); await expectStopPendingUntilAbort({ diff --git a/extensions/zalo/src/channel.startup.test.ts b/extensions/zalo/src/channel.startup.test.ts index 11070a51343..8486c631059 100644 --- a/extensions/zalo/src/channel.startup.test.ts +++ b/extensions/zalo/src/channel.startup.test.ts @@ -48,6 +48,17 @@ vi.mock("./channel.runtime.js", () => ({ import { zaloPlugin } from "./channel.js"; +type ZaloGateway = NonNullable; +type ZaloStartAccount = NonNullable; + +function requireStartAccount(): ZaloStartAccount { + const startAccount = zaloPlugin.gateway?.startAccount; + if (!startAccount) { + throw new Error("Expected Zalo gateway startAccount"); + } + return startAccount; +} + function buildAccount(): ResolvedZaloAccount { return { accountId: "default", @@ -76,7 +87,7 @@ describe("zaloPlugin gateway.startAccount", () => { ); const { abort, patches, task, isSettled } = startAccountAndTrackLifecycle({ - startAccount: zaloPlugin.gateway!.startAccount!, + startAccount: requireStartAccount(), account: buildAccount(), });