Spaces:
Paused
Paused
| import { EventEmitter } from "node:events"; | |
| import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; | |
| import { resetLogger, setLoggerOverride } from "../logging.js"; | |
| vi.mock("./session.js", () => { | |
| const ev = new EventEmitter(); | |
| const sock = { | |
| ev, | |
| ws: { close: vi.fn() }, | |
| sendPresenceUpdate: vi.fn(), | |
| sendMessage: vi.fn(), | |
| }; | |
| return { | |
| createWaSocket: vi.fn().mockResolvedValue(sock), | |
| waitForWaConnection: vi.fn().mockResolvedValue(undefined), | |
| }; | |
| }); | |
| import type { waitForWaConnection } from "./session.js"; | |
| import { loginWeb } from "./login.js"; | |
| const { createWaSocket } = await import("./session.js"); | |
| describe("web login", () => { | |
| beforeEach(() => { | |
| vi.clearAllMocks(); | |
| }); | |
| afterEach(() => { | |
| resetLogger(); | |
| setLoggerOverride(null); | |
| }); | |
| it("loginWeb waits for connection and closes", async () => { | |
| const sock = await createWaSocket(); | |
| const close = vi.spyOn(sock.ws, "close"); | |
| const waiter: typeof waitForWaConnection = vi.fn().mockResolvedValue(undefined); | |
| await loginWeb(false, waiter); | |
| await new Promise((resolve) => setTimeout(resolve, 550)); | |
| expect(close).toHaveBeenCalled(); | |
| }); | |
| }); | |