UNPKG

@cucumber/cucumber

Version:

The official JavaScript implementation of Cucumber.

47 lines (46 loc) 1.75 kB
import { ChildProcess } from 'node:child_process'; import { EventEmitter } from 'node:events'; import { SupportCodeLibrary } from '../../support_code_library_builder/types'; import { AssembledTestCase } from '../../assemble'; import { ILogger, IRunEnvironment } from '../../environment'; import { RuntimeAdapter } from '../types'; import { IRunOptionsRuntime } from '../../api'; import { WorkerToCoordinatorEvent } from './types'; declare const enum WorkerState { 'idle' = 0, 'closed' = 1, 'running' = 2, 'new' = 3 } interface ManagedWorker { state: WorkerState; process: ChildProcess; id: string; } interface WorkPlacement { index: number; item: AssembledTestCase; } export declare class ChildProcessAdapter implements RuntimeAdapter { private readonly environment; private readonly logger; private readonly eventBroadcaster; private readonly options; private readonly supportCodeLibrary; private idleInterventions; private failing; private onFinish; private todo; private readonly inProgress; private readonly workers; constructor(environment: IRunEnvironment, logger: ILogger, eventBroadcaster: EventEmitter, options: IRunOptionsRuntime, supportCodeLibrary: SupportCodeLibrary); parseWorkerMessage(worker: ManagedWorker, message: WorkerToCoordinatorEvent): void; awakenWorkers(triggeringWorker: ManagedWorker): void; startWorker(id: string, total: number): void; onWorkerProcessClose(exitCode: number): void; run(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>; nextWorkPlacement(): WorkPlacement; placementAt(index: number): WorkPlacement; giveWork(worker: ManagedWorker, force?: boolean): void; } export {};