Skip to content

@codesoul-co/hypha-testing / mock-execution-provider

模块用法

用于把外部或本地 Provider 绑定到 Hypha Port。Mock execution provider 模块公开 2 类、2 接口。

从包入口导入

ts
import {
  MockExecutionProvider,
  MockExecutionProviderError,
} from '@codesoul-co/hypha-testing';

import type {
  MockExecutionBehavior,
  MockExecutionProviderOptions,
} from '@codesoul-co/hypha-testing';

使用要点

  • 2 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 2 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。

公共导出

Symbol种类签名说明
MockExecutionProvidernew MockExecutionProvider(options?: MockExecutionProviderOptions): MockExecutionProviderDeterministic, in-memory SandboxProvider for contract tests, replay fixtures, and failure injection. It never starts a process or mutates a real Workspace.
MockExecutionProviderErrornew MockExecutionProviderError(normalizedError: NormalizedExecutionError): MockExecutionProviderErrorMock Execution Provider Error 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。
MockExecutionBehavior接口interface MockExecutionBehaviorMock Execution Behavior 接口,共包含 17 个公开字段或方法。
MockExecutionProviderOptions接口interface MockExecutionProviderOptionsMock Execution Provider Options 接口,共包含 8 个公开字段或方法。

MockExecutionProvider

Deterministic, in-memory SandboxProvider for contract tests, replay fixtures, and failure injection. It never starts a process or mutates a real Workspace.

  • 种类: 类
  • 导入: import { MockExecutionProvider } from '@codesoul-co/hypha-testing';
  • 源码模块: mock-execution-provider

声明

text
export declare class MockExecutionProvider implements SandboxProvider {
    readonly id: string;
    constructor(options?: MockExecutionProviderOptions);
    enqueue(behavior: MockExecutionBehavior): void;
    setHealth(health: ProviderHealth): void;
    capabilities(): Promise<SandboxProviderCapabilities>;
    create(input: SandboxCreateRequest): Promise<SandboxRecord>;
    start(input: SandboxStartRequest): Promise<SandboxRecord>;
    execute(input: CommandExecutionRequest): Promise<CommandExecutionResult>;
    cancel(input: ExecutionCancelRequest): Promise<void>;
    terminate(input: SandboxTerminateRequest): Promise<void>;
    status(input: SandboxStatusRequest): Promise<SandboxRecord | null>;
    cleanup(input: SandboxCleanupRequest): Promise<void>;
    health(): Promise<ProviderHealth>;
    close(): Promise<void>;
}

公开成员

成员种类签名说明
cancel方法cancel(input: ExecutionCancelRequest): Promise<void>公开方法;参数与返回类型以签名列为准。
capabilities方法capabilities(): Promise<SandboxProviderCapabilities>公开方法;参数与返回类型以签名列为准。
cleanup方法cleanup(input: SandboxCleanupRequest): Promise<void>公开方法;参数与返回类型以签名列为准。
close方法close(): Promise<void>公开方法;参数与返回类型以签名列为准。
constructor构造函数(options?: MockExecutionProviderOptions): MockExecutionProvider创建该类的实例。
create方法create(input: SandboxCreateRequest): Promise<SandboxRecord>公开方法;参数与返回类型以签名列为准。
enqueue方法enqueue(behavior: MockExecutionBehavior): void公开方法;参数与返回类型以签名列为准。
execute方法execute(input: CommandExecutionRequest): Promise<CommandExecutionResult>公开方法;参数与返回类型以签名列为准。
health方法health(): Promise<ProviderHealth>公开方法;参数与返回类型以签名列为准。
id属性readonly id: string公开属性;类型、只读和可选状态以签名列为准。
setHealth方法setHealth(health: ProviderHealth): void公开方法;参数与返回类型以签名列为准。
start方法start(input: SandboxStartRequest): Promise<SandboxRecord>公开方法;参数与返回类型以签名列为准。
status方法status(input: SandboxStatusRequest): Promise<SandboxRecord | null>公开方法;参数与返回类型以签名列为准。
terminate方法terminate(input: SandboxTerminateRequest): Promise<void>公开方法;参数与返回类型以签名列为准。

MockExecutionProviderError

Mock Execution Provider Error 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。

  • 种类: 类
  • 导入: import { MockExecutionProviderError } from '@codesoul-co/hypha-testing';
  • 源码模块: mock-execution-provider

声明

text
export declare class MockExecutionProviderError extends Error {
    readonly normalizedError: NormalizedExecutionError;
    constructor(normalizedError: NormalizedExecutionError);
}

公开成员

成员种类签名说明
cause属性cause?: unknown公开属性;类型、只读和可选状态以签名列为准。
constructor构造函数(normalizedError: NormalizedExecutionError): MockExecutionProviderError创建该类的实例。
message属性message: string公开属性;类型、只读和可选状态以签名列为准。
name属性name: string公开属性;类型、只读和可选状态以签名列为准。
normalizedError属性readonly normalizedError: NormalizedExecutionError公开属性;类型、只读和可选状态以签名列为准。
stack属性stack?: string公开属性;类型、只读和可选状态以签名列为准。
static captureStackTrace方法static captureStackTrace(targetObject: object, constructorOpt?: Function): voidCreates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called. js const myObject = {}; Error.captureStackTrace(myObject); myObject.stack; // Similar to `new Error().stack` The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}. The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace. The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance: js function a() { b(); } function b() { c(); } function c() { // Create an error without stack trace to avoid calculating the stack trace twice. const { stackTraceLimit } = Error; Error.stackTraceLimit = 0; const error = new Error(); Error.stackTraceLimit = stackTraceLimit; // Capture the stack trace above function b Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace throw error; } a();
static prepareStackTrace方法static prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any公开方法;参数与返回类型以签名列为准。
static stackTraceLimit属性static stackTraceLimit: numberThe Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)). The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

MockExecutionBehavior

Mock Execution Behavior 接口,共包含 17 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MockExecutionBehavior } from '@codesoul-co/hypha-testing';
  • 源码模块: mock-execution-provider

声明

text
export interface MockExecutionBehavior {
    delayMs?: number;
    status?: Extract<CommandExecutionStatus, 'completed' | 'failed' | 'timed_out' | 'oom_killed' | 'resource_exceeded' | 'quarantined'>;
    exitCode?: number | null;
    signal?: string;
    stdout?: string;
    stderr?: string;
    stdoutTruncated?: boolean;
    stderrTruncated?: boolean;
    stdoutArtifactRef?: string;
    stderrArtifactRef?: string;
    changedFiles?: FileMutation[];
    generatedArtifactRefs?: string[];
    snapshotBeforeRef?: string;
    snapshotAfterRef?: string;
    resourceUsage?: ExecutionResourceUsage;
    error?: NormalizedExecutionError;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
changedFiles属性changedFiles?: FileMutation[]公开属性;类型、只读和可选状态以签名列为准。
delayMs属性delayMs?: number公开属性;类型、只读和可选状态以签名列为准。
error属性error?: NormalizedExecutionError公开属性;类型、只读和可选状态以签名列为准。
exitCode属性exitCode?: number公开属性;类型、只读和可选状态以签名列为准。
generatedArtifactRefs属性generatedArtifactRefs?: string[]公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
resourceUsage属性resourceUsage?: ExecutionResourceUsage公开属性;类型、只读和可选状态以签名列为准。
signal属性signal?: string公开属性;类型、只读和可选状态以签名列为准。
snapshotAfterRef属性snapshotAfterRef?: string公开属性;类型、只读和可选状态以签名列为准。
snapshotBeforeRef属性snapshotBeforeRef?: string公开属性;类型、只读和可选状态以签名列为准。
status属性status?: "completed" | "failed" | "timed_out" | "oom_killed" | "resource_exceeded" | "quarantined"公开属性;类型、只读和可选状态以签名列为准。
stderr属性stderr?: string公开属性;类型、只读和可选状态以签名列为准。
stderrArtifactRef属性stderrArtifactRef?: string公开属性;类型、只读和可选状态以签名列为准。
stderrTruncated属性stderrTruncated?: boolean公开属性;类型、只读和可选状态以签名列为准。
stdout属性stdout?: string公开属性;类型、只读和可选状态以签名列为准。
stdoutArtifactRef属性stdoutArtifactRef?: string公开属性;类型、只读和可选状态以签名列为准。
stdoutTruncated属性stdoutTruncated?: boolean公开属性;类型、只读和可选状态以签名列为准。

MockExecutionProviderOptions

Mock Execution Provider Options 接口,共包含 8 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MockExecutionProviderOptions } from '@codesoul-co/hypha-testing';
  • 源码模块: mock-execution-provider

声明

text
export interface MockExecutionProviderOptions {
    id?: string;
    now?: () => string;
    sandboxId?: (request: SandboxCreateRequest) => string;
    executionId?: (request: CommandExecutionRequest) => string;
    capabilities?: Partial<SandboxProviderCapabilities>;
    health?: ProviderHealth;
    behaviors?: MockExecutionBehavior[];
    defaultBehavior?: MockExecutionBehavior;
}

契约成员

成员种类签名说明
behaviors属性behaviors?: MockExecutionBehavior[]公开属性;类型、只读和可选状态以签名列为准。
capabilities属性capabilities?: Partial<SandboxProviderCapabilities>公开属性;类型、只读和可选状态以签名列为准。
defaultBehavior属性defaultBehavior?: MockExecutionBehavior公开属性;类型、只读和可选状态以签名列为准。
executionId方法executionId?(request: CommandExecutionRequest): string公开方法;参数与返回类型以签名列为准。
health属性health?: ProviderHealth公开属性;类型、只读和可选状态以签名列为准。
id属性id?: string公开属性;类型、只读和可选状态以签名列为准。
now方法now?(): string公开方法;参数与返回类型以签名列为准。
sandboxId方法sandboxId?(request: SandboxCreateRequest): string公开方法;参数与返回类型以签名列为准。