























@@ -1,7 +1,7 @@
11import { EventEmitter } from "node:events";
22import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
33import { getRegisteredWhatsAppConnectionController } from "./connection-controller-registry.js";
4-import { WhatsAppConnectionController } from "./connection-controller.js";
4+import { closeWaSocket, WhatsAppConnectionController } from "./connection-controller.js";
55import type { WhatsAppSendKind, WhatsAppSendResult } from "./inbound/send-result.js";
66import { createWaSocket, waitForWaConnection } from "./session.js";
77@@ -40,6 +40,7 @@ function createSocketWithTransportEmitter() {
4040const ws = new EventEmitter() as EventEmitter & { close: ReturnType<typeof vi.fn> };
4141ws.close = vi.fn();
4242return {
43+end: vi.fn(),
4344 ws,
4445};
4546}
@@ -74,6 +75,7 @@ describe("WhatsAppConnectionController", () => {
74757576it("closes the socket when open fails before listener creation", async () => {
7677const sock = {
78+end: vi.fn(),
7779ws: {
7880close: vi.fn(),
7981},
@@ -91,11 +93,21 @@ describe("WhatsAppConnectionController", () => {
9193).rejects.toThrow("handshake failed");
92949395expect(createListener).not.toHaveBeenCalled();
94-expect(sock.ws.close).toHaveBeenCalledOnce();
96+expect(sock.end).toHaveBeenCalledOnce();
97+expect(sock.end).toHaveBeenCalledWith(expect.any(Error));
98+expect(sock.ws.close).not.toHaveBeenCalled();
9599expect(controller.socketRef.current).toBeNull();
96100expect(controller.getActiveListener()).toBeNull();
97101});
98102103+it("falls back to raw websocket close when Baileys end is unavailable", () => {
104+const sock = { ws: { close: vi.fn() } };
105+106+closeWaSocket(sock);
107+108+expect(sock.ws.close).toHaveBeenCalledOnce();
109+});
110+99111it("lets createWaSocket own the auth barrier before opening a socket", async () => {
100112const callOrder: string[] = [];
101113createWaSocketMock.mockImplementationOnce(async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。