CLI Mock Stdin

Create mock stdin utilities for interactive CLI testing.

majiayu000 9528dd1 2 files · 1.7 KB Updated 567 repo stars

File contents

CLI Mock Stdin

Create mock stdin utilities for testing.

Generated Patterns

import { Readable } from 'stream';

export function mockStdin(inputs: string[]): Readable {
  let index = 0;
  return new Readable({
    read() {
      if (index < inputs.length) {
        setTimeout(() => {
          this.push(inputs[index++] + '\n');
        }, 10);
      } else {
        this.push(null);
      }
    },
  });
}

export async function runWithStdin(
  cmd: () => Promise<void>,
  inputs: string[]
): Promise<void> {
  const originalStdin = process.stdin;
  Object.defineProperty(process, 'stdin', { value: mockStdin(inputs) });
  try {
    await cmd();
  } finally {
    Object.defineProperty(process, 'stdin', { value: originalStdin });
  }
}

Target Processes

  • cli-unit-integration-testing
  • interactive-prompt-system

majiayu000/claude-skill-registry-data/tree/main/testing/cli-mock-stdin commit 9528dd1cd3

Frequently asked questions

npx skillmds add majiayu000/cli-mock-stdin