import { mockClient } from "@xmpp/test";
import { tick } from "@xmpp/events";
test("emits ack when the server ackownledge stanzas", async () => {
const { entity } = mockClient();
entity.streamManagement.enabled = true;
expect(entity.streamManagement.outbound).toBe(0);
expect(entity.streamManagement.outbound_q).toBeEmpty();
// expect(entity.streamManagement.enabled).toBe(true);
await entity.send();
expect(entity.streamManagement.outbound).toBe(0);
expect(entity.streamManagement.outbound_q).toHaveLength(1);
let acks = 0;
entity.streamManagement.on("ack", (stanza) => {
expect(stanza.attrs.id).toBe("a");
acks++;
});
entity.mockInput();
await tick();
expect(acks).toBe(1);
expect(entity.streamManagement.outbound).toBe(1);
expect(entity.streamManagement.outbound_q).toHaveLength(0);
});
test("sends an element before closing", async () => {
const { entity, streamManagement } = mockClient();
streamManagement.enabled = true;
streamManagement.inbound = 42;
entity.status = "online";
const promise_disconnect = entity.disconnect();
expect(await entity.catchOutgoing()).toEqual(
,
);
await promise_disconnect;
});