mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-24 11:39:31 -05:00
939fedfca4
Signed-off-by: gulshank0 <gulshanbahadur002@gmail.com> Co-authored-by: Tiago Farto <tiago@formbricks.com> Co-authored-by: Johannes <72809645+jobenjada@users.noreply.github.com> Co-authored-by: pandeymangg <anshuman.pandey9999@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Tiago <1585571+xernobyl@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Theodór Tómas <theodortomas@gmail.com> Co-authored-by: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Co-authored-by: Bhagya Amarasinghe <b.sithumini@yahoo.com> Co-authored-by: Chowdhury Tafsir Ahmed Siddiki <ctafsiras@gmail.com> Co-authored-by: neila <40727091+neila@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Harsh Bhat <90265455+harshsbhat@users.noreply.github.com> Co-authored-by: Harsh Bhat <harshbhat@Harshs-MacBook-Air.local> Co-authored-by: Johannes <johannes@formbricks.com> Co-authored-by: Balázs Úr <balazs@urbalazs.hu> Co-authored-by: Gulshan <gulshanbahadur002@gmail.com> Co-authored-by: Harsh Bhat <harsh121102@gmail.com> Co-authored-by: Javi Aguilar <122741+itsjavi@users.noreply.github.com> Co-authored-by: Johannes <jobenjada@users.noreply.github.com>
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
|
|
const mockRegisterJobsWorker = vi.fn();
|
|
const mockRegisterRecurringJobs = vi.fn();
|
|
|
|
vi.mock("@sentry/nextjs", () => ({
|
|
captureRequestError: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("@/lib/constants", () => ({
|
|
IS_PRODUCTION: false,
|
|
PROMETHEUS_ENABLED: false,
|
|
SENTRY_DSN: undefined,
|
|
}));
|
|
|
|
vi.mock("./instrumentation-jobs", () => ({
|
|
registerRecurringJobs: mockRegisterRecurringJobs,
|
|
registerJobsWorker: mockRegisterJobsWorker,
|
|
}));
|
|
|
|
describe("instrumentation register", () => {
|
|
beforeEach(() => {
|
|
vi.resetModules();
|
|
vi.clearAllMocks();
|
|
process.env.NEXT_RUNTIME = "nodejs";
|
|
delete process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
});
|
|
|
|
test("does not block Next.js boot on BullMQ worker startup", async () => {
|
|
mockRegisterRecurringJobs.mockReturnValue(new Promise(() => undefined));
|
|
mockRegisterJobsWorker.mockReturnValue(new Promise(() => undefined));
|
|
|
|
const { register } = await import("./instrumentation");
|
|
|
|
await expect(register()).resolves.toBeUndefined();
|
|
expect(mockRegisterRecurringJobs).toHaveBeenCalledTimes(1);
|
|
expect(mockRegisterJobsWorker).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
test("swallows BullMQ worker startup rejections after triggering background registration", async () => {
|
|
mockRegisterRecurringJobs.mockRejectedValue(new Error("schedule failed"));
|
|
mockRegisterJobsWorker.mockRejectedValue(new Error("startup failed"));
|
|
|
|
const { register } = await import("./instrumentation");
|
|
|
|
await expect(register()).resolves.toBeUndefined();
|
|
await Promise.resolve();
|
|
|
|
expect(mockRegisterRecurringJobs).toHaveBeenCalledTimes(1);
|
|
expect(mockRegisterJobsWorker).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|