|
1 | 1 | import _reconnect from "./index.js";
|
2 |
| -import { EventEmitter } from "@xmpp/events"; |
| 2 | +// eslint-disable-next-line n/no-extraneous-import |
| 3 | +import Connection from "@xmpp/connection"; |
3 | 4 |
|
4 |
| -test("it schedule a reconnect when disconnect is emitted", (done) => { |
5 |
| - const entity = new EventEmitter(); |
| 5 | +test("schedules a reconnect when disconnect is emitted", () => { |
| 6 | + const entity = new Connection(); |
6 | 7 | const reconnect = _reconnect({ entity });
|
| 8 | + const spy_scheduleReconnect = jest.spyOn(reconnect, "scheduleReconnect"); |
7 | 9 |
|
8 |
| - reconnect.scheduleReconnect = () => { |
9 |
| - expect.pass(); |
10 |
| - done(); |
11 |
| - }; |
12 |
| - |
| 10 | + expect(spy_scheduleReconnect).toHaveBeenCalledTimes(0); |
13 | 11 | entity.emit("disconnect");
|
| 12 | + expect(spy_scheduleReconnect).toHaveBeenCalledTimes(1); |
14 | 13 | });
|
15 | 14 |
|
16 | 15 | test("#reconnect", async () => {
|
17 |
| - expect.assertions(3); |
18 |
| - |
19 |
| - const entity = new EventEmitter(); |
| 16 | + const service = "service"; |
| 17 | + const lang = "lang"; |
| 18 | + const domain = "domain"; |
| 19 | + |
| 20 | + const entity = new Connection({ |
| 21 | + service, |
| 22 | + lang, |
| 23 | + domain, |
| 24 | + }); |
20 | 25 | const reconnect = _reconnect({ entity });
|
21 | 26 |
|
22 |
| - entity.options = { |
23 |
| - service: "service", |
24 |
| - lang: "lang", |
25 |
| - domain: "domain", |
26 |
| - }; |
27 |
| - |
28 |
| - entity.connect = (service) => { |
29 |
| - expect(service).toBe(entity.options.service); |
30 |
| - }; |
31 |
| - |
32 |
| - entity.open = ({ domain, lang }) => { |
33 |
| - expect(domain).toBe(entity.options.domain); |
34 |
| - expect(lang).toBe(entity.options.lang); |
35 |
| - }; |
| 27 | + const spy_connect = jest.spyOn(entity, "connect").mockResolvedValue(); |
| 28 | + const spy_open = jest.spyOn(entity, "open").mockResolvedValue(); |
36 | 29 |
|
37 | 30 | await reconnect.reconnect();
|
| 31 | + |
| 32 | + expect(spy_connect).toHaveBeenCalledWith(service); |
| 33 | + expect(spy_open).toHaveBeenCalledWith({ |
| 34 | + domain, |
| 35 | + lang, |
| 36 | + }); |
38 | 37 | });
|
0 commit comments