RunCommandOptions
Options for runCommand.
Extends RunOptions with the CLI-root state runCommand() mirrors, following the way CLIRunOptions extends CLIExecuteOptions with the fields only that layer needs.
- Import:
@kjanat/dreamcli/testkit - Export kind: interface
- Declared in:
src/core/testkit/index.ts - Source link:
src/core/testkit/index.ts:44
Signatures
interface RunCommandOptions extends RunOptions {}Members
Properties
answers
Pre-configured prompt answers for testing convenience.
When provided, a test prompter is created from these answers via createTestPrompter(answers). Each entry is consumed in order — use PROMPT_CANCEL to simulate cancellation.
Ignored when an explicit prompter is provided.
answers?: readonly unknown[];builtins
Which built-in flags the harness mirrors, matching the CLI the command is registered on.
A command that owns a released built-in (cli(...).builtins({ json: 'off' }) plus a json flag) must be tested with the same setting, otherwise the harness strips the token before parse() sees it.
builtins?: BuiltinsConfig;config
Configuration object for flag and arg resolution.
Inputs with .config('path') configured resolve from this record when CLI, stdin, and env produce nothing (CLI → stdin → env → config → prompt → default). Config is plain JSON, so file loading is the caller's responsibility.
config?: Readonly<Record<string, unknown>>;env
Environment variables for flag and arg resolution.
Inputs with .env('VAR') configured resolve from this record when CLI and stdin produce nothing (CLI → stdin → env → config → prompt → default).
env?: Readonly<Record<string, string | undefined>>;flags
Flag-parsing behavior settings.
caseParity accepts the kebab↔camel counterpart spelling of each flag name/alias (--doThis for do-this, and vice versa). The CLI layer threads cli(name, { flags }) settings here automatically.
flags?: ParseOptions;help
Help formatting options (width, binName). Used when --help is detected.
help?: HelpOptions;isTTY
Whether stdout is connected to a TTY.
Handlers can check out.isTTY to decide whether to emit decorative output (spinners, progress bars, ANSI codes). Defaults to false (safe default for tests — non-TTY until proven otherwise).
isTTY?: boolean;jsonMode
Enable JSON output mode.
When true, log and info messages are redirected to stderr so that stdout is reserved exclusively for structured json() output. Framework-rendered errors are emitted as structured JSON to stdout.
jsonMode?: boolean;mkdir
Recursive directory creation for flag.path() and arg.path() create checks.
CLIBuilder.run() supplies the runtime adapter's implementation automatically. When absent, missing paths are not created.
mkdir?: { (path: string): Promise<void>; };prompter
Prompt engine for interactive flag and arg resolution.
When provided, inputs with .prompt() configured that have no value after CLI, stdin, env, and config resolution are prompted interactively.
When absent (and answers is also absent), prompting is skipped and resolution falls through to default/required.
Takes precedence over answers when both are provided.
prompter?: PromptEngine;stat
Filesystem probe for flag.path() and arg.path() checks: reports what exists at a path ('file', 'directory', or null for nothing).
CLIBuilder.run() supplies the runtime adapter's probe automatically. When absent (process-free .execute() / runCommand() without an override), path checks are skipped.
stat?: { (path: string): Promise<"file" | "directory" | null>; };stdinData
Full stdin contents for flags and args configured with .stdin().
Lets tests inject piped input without a runtime adapter.
stdinData?: string | null;verbosity
Verbosity level for the output channel.
verbosity?: "normal" | "quiet";