Files
twenty/packages/twenty-server/test/integration/utils/enqueue-job-and-await.util.ts
T
neo773 0a4dd19472 feat(messaging): add integration testing framework for sync jobs
Open the BullMQ driver's return-value channel with a backward-compatible
TResult generic so jobs can return typed results, and add an MSW-based
integration harness that drives messaging sync jobs end-to-end against
mocked Gmail/Microsoft Graph APIs with real DB assertions.

Covers full pipeline (folder sync, list fetch, import), folder discovery
and import policy, token refresh and insufficient-permissions, rate-limit
throttling, sync cursor, failed-channel recovery, and stale-sync recovery
across the Gmail and Microsoft drivers.
2026-06-05 16:11:02 +05:30

24 lines
831 B
TypeScript

import { type MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
import { type MessageQueueJobData } from 'src/engine/core-modules/message-queue/interfaces/message-queue-job.interface';
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
import { getQueueToken } from 'src/engine/core-modules/message-queue/utils/get-queue-token.util';
export const enqueueJobAndAwait = async <
TData extends MessageQueueJobData,
TResult,
>(
queue: MessageQueue,
job: { name: string },
data: TData,
): Promise<TResult> => {
const messageQueueService = global.app.get<MessageQueueService>(
getQueueToken(queue),
{ strict: false },
);
return (await messageQueueService.add<TData, TResult>(
job.name,
data,
)) as TResult;
};