jest.mock("tls");
import tls from "node:tls";
import { mockClient, promise, delay, mockSocket } from "@xmpp/test";
import { EventEmitter } from "@xmpp/events";
test("success", async () => {
const { entity } = mockClient();
entity.socket = mockSocket();
const { socket, options } = entity;
options.domain = "foobar";
tls.connect.mockImplementation(() => {
return new EventEmitter();
});
entity.mockInput(
,
);
expect(await promise(entity, "send")).toEqual(
,
);
entity.mockInput();
await delay();
expect(tls.connect).toHaveBeenCalledTimes(1);
expect(tls.connect).toHaveBeenCalledWith({ socket, host: "foobar" });
});
test("failure", async () => {
const { entity } = mockClient();
entity.socket = mockSocket();
entity.mockInput(
,
);
expect(await promise(entity, "send")).toEqual(
,
);
entity.mockInput();
const err = await promise(entity, "error");
expect(err instanceof Error).toBe(true);
expect(err.message).toBe("STARTTLS_FAILURE");
});