diff --git a/src/index.core.test.ts b/src/index.core.test.ts index f564683b8..0035d584e 100644 --- a/src/index.core.test.ts +++ b/src/index.core.test.ts @@ -214,11 +214,10 @@ describe("twilio interactions", () => { }); it("waitForFinalStatus exits on failure", async () => { - const runtime = { + const runtime: index.RuntimeEnv = { error: vi.fn(), - exit: ((code: number) => { - throw new Error(`exit ${code}`); - }) as (code: number) => never, + exit: vi.fn() as unknown as (code: number) => never, + log: console.log, }; const fetch = vi.fn().mockResolvedValue({ status: "failed" }); const client = { @@ -520,9 +519,7 @@ describe("monitoring", () => { it("ensureFunnel failure path exits via runtime", async () => { const runtime: index.RuntimeEnv = { error: vi.fn(), - exit: ((code: number) => { - throw new Error(`exit ${code}`); - }) as (code: number) => never, + exit: vi.fn() as unknown as (code: number) => never, log: console.log, }; const exec = vi.fn().mockRejectedValue({ stdout: "Funnel is not enabled" }); diff --git a/src/index.ts b/src/index.ts index 0f75b94da..09a046be3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -47,6 +47,7 @@ import { normalizeE164, normalizePath, sleep, + toWhatsappJid, withWhatsAppPrefix, } from "./utils.js"; @@ -2161,7 +2162,7 @@ export { uniqueBySid, waitForFinalStatus, waitForever, - type toWhatsappJid, + toWhatsappJid, program, }; diff --git a/src/provider-web.test.ts b/src/provider-web.test.ts index c68776d3b..5ac3c0bda 100644 --- a/src/provider-web.test.ts +++ b/src/provider-web.test.ts @@ -3,17 +3,18 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { MockBaileysSocket } from "../test/mocks/baileys.js"; import { createMockBaileys } from "../test/mocks/baileys.js"; -const LAST_SOCKET_KEY = Symbol.for("warelay:lastSocket"); - vi.mock("baileys", () => { const created = createMockBaileys(); - (globalThis as Record)[LAST_SOCKET_KEY] = - created.lastSocket; + (globalThis as Record)[ + Symbol.for("warelay:lastSocket") + ] = created.lastSocket; return created.mod; }); function getLastSocket(): MockBaileysSocket { - const getter = (globalThis as Record)[LAST_SOCKET_KEY]; + const getter = (globalThis as Record)[ + Symbol.for("warelay:lastSocket") + ]; if (typeof getter === "function") return (getter as () => MockBaileysSocket)(); if (!getter) throw new Error("Baileys mock not initialized"); @@ -46,8 +47,9 @@ describe("provider-web", () => { beforeEach(() => { vi.clearAllMocks(); const recreated = createMockBaileys(); - (globalThis as Record)[LAST_SOCKET_KEY] = - recreated.lastSocket; + (globalThis as Record)[ + Symbol.for("warelay:lastSocket") + ] = recreated.lastSocket; baileys.makeWASocket.mockImplementation(recreated.mod.makeWASocket); baileys.useSingleFileAuthState.mockImplementation( recreated.mod.useSingleFileAuthState, diff --git a/src/provider-web.ts b/src/provider-web.ts index 704885a3b..eda6dba0d 100644 --- a/src/provider-web.ts +++ b/src/provider-web.ts @@ -22,7 +22,7 @@ const WA_WEB_AUTH_FILE = path.join( export async function createWaSocket(printQr: boolean, verbose: boolean) { await ensureDir(path.dirname(WA_WEB_AUTH_FILE)); - const { state, saveState } = useSingleFileAuthState(WA_WEB_AUTH_FILE); + const { state, saveState } = await useSingleFileAuthState(WA_WEB_AUTH_FILE); const { version } = await fetchLatestBaileysVersion(); const logger = pino({ level: verbose ? "info" : "silent" }); const sock = makeWASocket({