mawk
v1.0.0
Published
Dependency injection and mocking for Node.js
Downloads
4
Readme
mawk
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)
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)
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)
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)
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)
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)
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'