@xec-sh/core
Version:
Universal shell execution engine
43 lines (42 loc) • 1.69 kB
TypeScript
import { Command } from '../core/command.js';
import { ExecutionResult } from '../core/result.js';
import { BaseAdapter, BaseAdapterConfig } from './base-adapter.js';
export interface MockResponse {
stdout?: string;
stderr?: string;
exitCode?: number;
signal?: string;
delay?: number;
error?: Error;
}
export interface MockAdapterConfig extends BaseAdapterConfig {
recordCommands?: boolean;
defaultDelay?: number;
}
export declare class MockAdapter extends BaseAdapter {
protected readonly adapterName = "mock";
private responses;
private regexResponses;
private defaultResponse;
private executedCommands;
private mockConfig;
constructor(config?: MockAdapterConfig);
isAvailable(): Promise<boolean>;
execute(command: Command): Promise<ExecutionResult>;
mockCommand(command: string | RegExp, response: MockResponse): void;
mockDefault(response: MockResponse): void;
clearMocks(): void;
getExecutedCommands(): string[];
wasCommandExecuted(command: string | RegExp): boolean;
getCommandExecutionCount(command: string | RegExp): number;
private findMockResponse;
private delay;
mockSuccess(command: string | RegExp, stdout?: string): void;
mockFailure(command: string | RegExp, stderr?: string, exitCode?: number): void;
mockTimeout(command: string | RegExp, delay?: number): void;
assertCommandExecuted(command: string | RegExp): void;
assertCommandNotExecuted(command: string | RegExp): void;
assertCommandExecutedTimes(command: string | RegExp, times: number): void;
assertCommandsExecutedInOrder(commands: (string | RegExp)[]): void;
dispose(): Promise<void>;
}