Farmbot-Web-App/frontend/connectivity/__tests__/connect_device/event_listeners_test.ts

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2019-03-11 15:34:10 -06:00
const on = jest.fn((_e: string, _cb: unknown) => undefined);
const stub = () => Promise.resolve();
const mockBot = {
client: {
2019-03-11 19:11:20 -06:00
subscribe: jest.fn(),
2019-03-11 15:34:10 -06:00
on
},
on,
readStatus: jest.fn(stub),
2019-03-11 19:11:20 -06:00
setUserEnv: stub,
2019-03-11 15:34:10 -06:00
};
jest.mock("../../../device", () => { return { getDevice: () => mockBot }; });
jest.mock("../../ping_mqtt", () => { return { startPinging: jest.fn() }; });
import { getDevice } from "../../../device";
2019-05-23 13:27:07 -06:00
import { FbjsEventName } from "farmbot/dist/constants";
import { attachEventListeners } from "../../connect_device";
2019-03-11 15:34:10 -06:00
import { startPinging } from "../../ping_mqtt";
describe("attachEventListeners", () => {
it("attaches relevant callbacks", () => {
const dev = getDevice();
attachEventListeners(dev, jest.fn(), jest.fn());
[
2019-05-23 13:27:07 -06:00
FbjsEventName.legacy_status,
FbjsEventName.logs,
FbjsEventName.malformed,
FbjsEventName.offline,
FbjsEventName.online,
FbjsEventName.online,
FbjsEventName.sent,
FbjsEventName.upsert,
FbjsEventName.publicBroadcast,
2019-03-11 15:34:10 -06:00
].map(e => expect(dev.on).toHaveBeenCalledWith(e, expect.any(Function)));
[
"message",
2020-02-28 09:35:32 -07:00
"reconnect",
2019-03-11 15:34:10 -06:00
].map(e => {
if (dev.client) {
expect(dev.client.on).toHaveBeenCalledWith(e, expect.any(Function));
} else {
fail("Bad mock");
}
});
expect(dev.readStatus).toHaveBeenCalled();
2019-03-11 19:11:20 -06:00
expect(dev.client && dev.client.subscribe).toHaveBeenCalled();
2019-03-11 15:34:10 -06:00
expect(startPinging).toHaveBeenCalledWith(dev);
});
});