Skip to content

PURISTA API


PURISTA API / @purista/core / createQueueWorkerTestHarness

Function: createQueueWorkerTestHarness()

createQueueWorkerTestHarness<TServiceBuilder>(serviceBuilder, workerBuilder, options?): Promise<{ destroy: () => Promise<void>; eventBridge: EventBridge; queueBridge: QueueBridge; run: <Payload, Parameter>(message) => Promise<{ ackCalls: SinonSpyCall<any[], any>[]; deadLetterCalls: SinonSpyCall<any[], any>[]; extendLeaseCalls: SinonSpyCall<any[], any>[]; nackCalls: SinonSpyCall<any[], any>[]; }>; service: Service<ServiceClassTypes<EmptyObject, EmptyObject>>; stubs: { eventBridge: Record<string, SinonStub<any[], any>> | undefined; queueBridge: Record<string, SinonStub<any[], any>> | undefined; }; }>

Defined in: testing/createQueueWorkerTestHarness.ts:27

Boot a real service instance and execute one queue worker cycle through the PURISTA worker runtime.

Use this helper when you want to verify queue worker guards, job controls, and queue bridge interactions instead of calling the handler directly.

Type Parameters

TServiceBuilder

TServiceBuilder extends ServiceBuilder<ServiceBuilderTypes>

Parameters

serviceBuilder

TServiceBuilder

workerBuilder

QueueWorkerBuilder

options?

{ [K in string | number | symbol]: ({ ai?: AgentRuntimeOptions<Record<string, AgentModelBinding>>; configStore?: ConfigStore; logger?: Logger; logLevel?: LogLevelName; metrics?: PuristaMetricsRuntimeOptions; metricsRecorder?: PuristaMetricsRecorderInterface; queueBridge?: QueueBridge; queueJobStore?: QueueJobStore; secretStore?: SecretStore; spanProcessor?: SpanProcessor; stateStore?: StateStore } & (keyof InferQueueWorkerHarnessServiceBuilderConfig<TServiceBuilder>["Resources"] extends never ? { resources?: undefined } : { resources: InferQueueWorkerHarnessServiceBuilderConfig<TServiceBuilder>["Resources"] }) & (keyof InferQueueWorkerHarnessServiceBuilderConfig<TServiceBuilder>["ConfigInputType"] extends never ? { serviceConfig?: undefined } : { serviceConfig?: InferQueueWorkerHarnessServiceBuilderConfig<TServiceBuilder>["ConfigInputType"] }))[K] } & object = ...

Returns

Promise<{ destroy: () => Promise<void>; eventBridge: EventBridge; queueBridge: QueueBridge; run: <Payload, Parameter>(message) => Promise<{ ackCalls: SinonSpyCall<any[], any>[]; deadLetterCalls: SinonSpyCall<any[], any>[]; extendLeaseCalls: SinonSpyCall<any[], any>[]; nackCalls: SinonSpyCall<any[], any>[]; }>; service: Service<ServiceClassTypes<EmptyObject, EmptyObject>>; stubs: { eventBridge: Record<string, SinonStub<any[], any>> | undefined; queueBridge: Record<string, SinonStub<any[], any>> | undefined; }; }>