spawn-mock
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

spawn-mock

Simple mock for child_process.spawn

This is a basic mock for child_process.spawn built on top of stdio-mock, if you wish to use this library, it will likely be very helpful to learn its API for MockReadable and MockWritable.

Let me have it!

npm install --save spawn-mock

API

mockSpawn(callback: (mockChildProcess: MockChildProcess) => any): Spawn

The only function exported by this library takes a callback that allows you to imperatively call methods on to "mock" an actual called child process.

Example:

import { mockSpawn } from 'spawn-mock';
 
const spawn = mockSpawn(function (cp: MockChildProcess) {
  // the command (cmd) and the arguments (args) that the returned function
  // has bene called wth
  const { cmd, args } = cp;
 
  // write the arguments to the standard output
  cp.stdout.write(args.join(' '));
 
  // end the child process
  cp.end();
})
 
const cp = spawn('echo', ['hello']);
 
cp.stdout.on('data', data => console.log(data.toString())) // 'hello'
 
// left as an exercise for the reader ;)

Types

Spawn

export type Spawn = 
  (cmd: string, args: string[], options?: SpawnOptions | undefined) => MockChildProcess

MockChildProcess

import { SpawnOptions, ChildProcess } from 'child_process';
import { MockWritable, MockReadable } from 'stdio-mock';
 
export declare class MockChildProcess extends MockWritable implements ChildProcess {
    stdin: MockWritable;
    stdout: MockReadable;
    stderr: MockReadable;
    stdio: [MockWritable, MockReadable, MockReadable];
    pid: number;
    connected: boolean;
    cmd: string;
    args: Array<string>;
    options: SpawnOptions | undefined;
 
    constructor(cmd: string, args: Array<string>, options?: SpawnOptions);
 
    end(): void;
    disconnect(): void;
    kill(signal?: string, code?: number): void;
    send(message: any): boolean;
    unref(): void;
    ref(): void;
}

Package Sidebar

Install

npm i spawn-mock

Weekly Downloads

380

Version

1.0.0

License

MIT

Last publish

Collaborators

  • tylors