test(web): split provider web suite

This commit is contained in:
Peter Steinberger
2025-11-26 01:23:34 +01:00
parent 4dd2f3b7f7
commit e0b28b6718
7 changed files with 471 additions and 360 deletions

42
src/web/login.test.ts Normal file
View File

@@ -0,0 +1,42 @@
import { EventEmitter } from "node:events";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import {
baileys,
resetBaileysMocks,
resetLoadConfigMock,
} from "./test-helpers.js";
import { resetLogger, setLoggerOverride } from "../logging.js";
import { loginWeb } from "./login.js";
import type { waitForWaConnection } from "./session.js";
describe("web login", () => {
beforeEach(() => {
vi.clearAllMocks();
resetBaileysMocks();
resetLoadConfigMock();
});
afterEach(() => {
resetLogger();
setLoggerOverride(null);
});
it("loginWeb waits for connection and closes", async () => {
const closeSpy = vi.fn();
const ev = new EventEmitter();
baileys.makeWASocket.mockImplementation(() => ({
ev,
ws: { close: closeSpy },
sendPresenceUpdate: vi.fn(),
sendMessage: vi.fn(),
}));
const waiter: typeof waitForWaConnection = vi
.fn()
.mockResolvedValue(undefined);
await loginWeb(false, waiter);
await new Promise((resolve) => setTimeout(resolve, 550));
expect(closeSpy).toHaveBeenCalled();
});
});