chore: Fix types in tests 23/N.

This commit is contained in:
cpojer
2026-02-17 12:23:01 +09:00
parent 8d6e345338
commit cf6cdc74d0
13 changed files with 166 additions and 116 deletions

View File

@@ -44,6 +44,9 @@ vi.mock("./session.js", () => {
});
const { createWaSocket, waitForWaConnection, formatError } = await import("./session.js");
const createWaSocketMock = vi.mocked(createWaSocket);
const waitForWaConnectionMock = vi.mocked(waitForWaConnection);
const formatErrorMock = vi.mocked(formatError);
const { loginWeb } = await import("./login.js");
describe("loginWeb coverage", () => {
@@ -57,27 +60,29 @@ describe("loginWeb coverage", () => {
});
it("restarts once when WhatsApp requests code 515", async () => {
waitForWaConnection
waitForWaConnectionMock
.mockRejectedValueOnce({ output: { statusCode: 515 } })
.mockResolvedValueOnce(undefined);
const runtime = { log: vi.fn(), error: vi.fn() } as never;
await loginWeb(false, waitForWaConnection as never, runtime);
await loginWeb(false, waitForWaConnectionMock as never, runtime);
expect(createWaSocket).toHaveBeenCalledTimes(2);
const firstSock = await createWaSocket.mock.results[0].value;
expect(createWaSocketMock).toHaveBeenCalledTimes(2);
const firstSock = await createWaSocketMock.mock.results[0]?.value;
expect(firstSock.ws.close).toHaveBeenCalled();
vi.runAllTimers();
const secondSock = await createWaSocket.mock.results[1].value;
const secondSock = await createWaSocketMock.mock.results[1]?.value;
expect(secondSock.ws.close).toHaveBeenCalled();
});
it("clears creds and throws when logged out", async () => {
waitForWaConnection.mockRejectedValueOnce({
waitForWaConnectionMock.mockRejectedValueOnce({
output: { statusCode: DisconnectReason.loggedOut },
});
await expect(loginWeb(false, waitForWaConnection as never)).rejects.toThrow(/cache cleared/i);
await expect(loginWeb(false, waitForWaConnectionMock as never)).rejects.toThrow(
/cache cleared/i,
);
expect(rmMock).toHaveBeenCalledWith(authDir, {
recursive: true,
force: true,
@@ -85,10 +90,10 @@ describe("loginWeb coverage", () => {
});
it("formats and rethrows generic errors", async () => {
waitForWaConnection.mockRejectedValueOnce(new Error("boom"));
await expect(loginWeb(false, waitForWaConnection as never)).rejects.toThrow(
waitForWaConnectionMock.mockRejectedValueOnce(new Error("boom"));
await expect(loginWeb(false, waitForWaConnectionMock as never)).rejects.toThrow(
"formatted:Error: boom",
);
expect(formatError).toHaveBeenCalled();
expect(formatErrorMock).toHaveBeenCalled();
});
});