@cucumber/cucumber
Version:
The official JavaScript implementation of Cucumber.
50 lines (49 loc) • 1.98 kB
TypeScript
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 { FormatOptions } from '../../formatter';
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 testRunStartedId;
private readonly environment;
private readonly logger;
private readonly eventBroadcaster;
private readonly options;
private readonly snippetOptions;
private readonly supportCodeLibrary;
private idleInterventions;
private failing;
private onFinish;
private todo;
private readonly inProgress;
private readonly workers;
constructor(testRunStartedId: string, environment: IRunEnvironment, logger: ILogger, eventBroadcaster: EventEmitter, options: IRunOptionsRuntime, snippetOptions: Pick<FormatOptions, 'snippetInterface' | 'snippetSyntax'>, 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 {};