Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

mawk

bakerface4MIT1.0.0

Dependency injection and mocking for Node.js

dependency, inject, mock

readme

mawk

npm package build code climate coverage issues dependencies devDependencies downloads

Table of Contents

# mawk.args(fn) - returns argument names for a function.
# mawk.as(name, value) - create a mock from a value.
# mawk.factory(name, fn) - create a mock from a factory function.
# mawk.require(name) - create a mock from a module.
# mawk.resolve(name) - returns the value of a mock.
# mawk.sanitize(name) - returns a safe mock name.

mawk.args(fn)

stability

Returns the argument names for the function fn as an array of strings.

var mock = require('mawk');

function sum(one, two) {
  return one + two;
}

mock.args(sum);
// => [ 'one', 'two' ]

mawk.as(name, value)

stability

Creates a mock with specified name that resolves to the specified value.

var mock = require('mawk');

// pass name and value together
mock.as('one', 1);

// or pass name then value
mock('one').as(1);

mock.resolve('one');
// => 1

mawk.factory(name, fn)

stability

Creates a mock with specified name that resolves to the value returned from the function fn.

var mock = require('mawk');

mock('one').as(1);
mock('two').as(2);

function three(one, two) {
  return one + two;
}

// pass name and function together
mock.factory('three', three);

// or pass name then function
mock('three').factory(three);

mock.resolve('three');
// => 3

mawk.require(name)

stability

Creates a mock from the module with specified name.

var mock = require('mawk');

// in production
mock.require('redis');

mock.resolve('redis');
// => require('redis')

// in development
mock('redis').require('fakeredis');

mock.resolve('redis');
// => require('fakeredis')

mawk.resolve(name)

stability

Returns the value of the mock with the specified name.

var mock = require('mawk');

mock('one').as(1);
mock('two').as(2);

mock.resolve('one');
// => 1

mock.resolve('two');
// => 2

mawk.sanitize(name)

stability

Returns a sanitized version of name suitable for use as a JavaScript function argument.

var mock = require('mawk');

mock.sanitize('express');
// => 'express'

mock.sanitize('!safe');
// => 'safe'

mock.sanitize('body-parser');
// => 'bodyParser'

mock.sanitize('@bakerface/mawkjs');
// => 'mawkjs'

mock.sanitize('/path/to/file.js');
// => 'file'