Skip to content

PURISTA API


PURISTA API / @purista/core / createStreamTestHarness

Function: createStreamTestHarness()

createStreamTestHarness<TServiceBuilder, TStreamBuilder>(serviceBuilder, streamBuilder, options?): Promise<{ destroy: () => Promise<void>; eventBridge: EventBridge; run: (input) => Promise<{ chunks: Infer<InferStreamBuilderConfig<TStreamBuilder>["ChunkSchema"]>[]; final: Infer<InferStreamBuilderConfig<TStreamBuilder>["FinalSchema"]> | undefined; frames: object[]; }>; service: Service<ServiceClassTypes<EmptyObject, EmptyObject>>; stubs: { eventBridge: Record<string, SinonStub<any[], any>> | undefined; }; }>

Defined in: testing/createStreamTestHarness.ts:71

Boot a real service instance and execute one stream through the PURISTA runtime.

Use this helper when you want to assert emitted stream frames, final payloads, and guard behavior.

Type Parameters

TServiceBuilder

TServiceBuilder extends ServiceBuilder<ServiceBuilderTypes>

TStreamBuilder

TStreamBuilder extends StreamDefinitionBuilder<any, any>

Parameters

serviceBuilder

TServiceBuilder

streamBuilder

TStreamBuilder

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 InferStreamHarnessServiceBuilderConfig<TServiceBuilder>["Resources"] extends never ? { resources?: undefined } : { resources: InferStreamHarnessServiceBuilderConfig<TServiceBuilder>["Resources"] }) & (keyof InferStreamHarnessServiceBuilderConfig<TServiceBuilder>["ConfigInputType"] extends never ? { serviceConfig?: undefined } : { serviceConfig?: InferStreamHarnessServiceBuilderConfig<TServiceBuilder>["ConfigInputType"] }))[K] } & object = ...

Returns

Promise<{ destroy: () => Promise<void>; eventBridge: EventBridge; run: (input) => Promise<{ chunks: Infer<InferStreamBuilderConfig<TStreamBuilder>["ChunkSchema"]>[]; final: Infer<InferStreamBuilderConfig<TStreamBuilder>["FinalSchema"]> | undefined; frames: object[]; }>; service: Service<ServiceClassTypes<EmptyObject, EmptyObject>>; stubs: { eventBridge: Record<string, SinonStub<any[], any>> | undefined; }; }>