UNPKG

@grouparoo/core

Version:
71 lines (58 loc) 2.22 kB
import fetch, { enableFetchMocks } from "jest-fetch-mock"; enableFetchMocks(); import { helper } from "@grouparoo/spec-helper"; import { plugin } from "../../../src"; import { api, specHelper, config } from "actionhero"; describe("tasks/telemetry", () => { helper.grouparooTestServer({ truncate: true, enableTestPlugin: true, resetSettings: true, }); beforeAll(async () => await api.resque.queue.connection.redis.flushdb()); beforeEach(() => fetch.resetMocks()); describe("telemetry", () => { beforeAll(async () => { await helper.factories.properties(); }); test("settings are loaded at boot", async () => { const setting = await plugin.readSetting("telemetry", "customer-id"); expect(setting.value).toMatch(/^tcs_/); }); test("the telemetry task is recurring", async () => { await specHelper.runFullTask("telemetry", {}); const foundTasks = await specHelper.findEnqueuedTasks("telemetry"); expect(foundTasks.length).toBe(1); }); test("the telemetry:adHoc task is not recurring", async () => { await specHelper.runFullTask("telemetry:adHoc", {}); const foundTasks = await specHelper.findEnqueuedTasks("telemetry:adHoc"); expect(foundTasks.length).toBe(0); }); describe("enabled telemetry", () => { beforeAll(() => { config.telemetry.enabled = true; }); afterAll(() => { config.telemetry.enabled = false; }); test("the task can be run", async () => { fetch.mockResponseOnce(JSON.stringify({ response: "FROM TEST" })); // does not throw const ok = await specHelper.runTask("telemetry", {}); expect(ok).toBe(true); expect(fetch).toHaveBeenCalledTimes(1); expect(fetch).toHaveBeenCalledWith( "https://telemetry.grouparoo.com/api/v1/telemetry", expect.objectContaining({ method: "POST" }) ); }); }); test("telemetry can be disabled", async () => { // disabled by default in NODE_ENV=test const response = await specHelper.runTask("telemetry", {}); expect(response).toBeUndefined(); expect(fetch).not.toHaveBeenCalled(); }); }); });