ebemunk/node-uci

View on GitHub
src/Engine/__mocks__/child_process.js

Summary

Maintainability
A
0 mins
Test Coverage
import EventEmitter from 'events'
import stream from 'stream'
import { EOL } from 'os'

export const cpMock = new EventEmitter()

const stdoutMock = new stream.Readable()
stdoutMock._read = x => x

Object.assign(cpMock, {
  stdout: stdoutMock,
  uciok: () => cpMock.stdout.emit('data', `uciok${EOL}`),
  readyok: () => cpMock.stdout.emit('data', `readyok${EOL}`),
  stdin: {
    write: jest.fn(),
  },
})

export function spawn() {
  cpMock.stdout.removeAllListeners()

  Object.assign(cpMock, {
    stdin: {
      write: jest.fn(),
    },
  })

  return cpMock
}