https://github.com/bakerface/mawkjs
Dependency injection and mocking for Node.js
https://github.com/bakerface/mawkjs
Last synced: 10 months ago
JSON representation
Dependency injection and mocking for Node.js
- Host: GitHub
- URL: https://github.com/bakerface/mawkjs
- Owner: bakerface
- Created: 2016-03-04T17:13:29.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-03-05T14:07:14.000Z (about 10 years ago)
- Last Synced: 2025-06-18T03:09:32.618Z (11 months ago)
- Language: JavaScript
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mawk
[](http://badge.fury.io/js/mawk)
[](https://travis-ci.org/bakerface/mawkjs)
[](https://codeclimate.com/github/bakerface/mawkjs)
[](https://codeclimate.com/github/bakerface/mawkjs/coverage)
[](https://github.com/bakerface/mawkjs/issues)
[](https://david-dm.org/bakerface/mawkjs)
[](https://david-dm.org/bakerface/mawkjs#info=devDependencies)
[](https://www.npmjs.com/package/mawk)
#### Table of Contents
[#](#mawkargsfn) **mawk**.args(*fn*) - returns argument names for a function.
[#](#mawkasname-value) **mawk**.as(*name*, *value*) - create a mock from a value.
[#](#mawkfactoryname-fn) **mawk**.factory(*name*, *fn*) - create a mock from a factory function.
[#](#mawkrequirename) **mawk**.require(*name*) - create a mock from a module.
[#](#mawkresolvename) **mawk**.resolve(*name*) - returns the value of a mock.
[#](#mawksanitizename) **mawk**.sanitize(*name*) - returns a safe mock name.
### mawk.args(fn)
[](#mawkargsfn)
Returns the argument names for the function `fn` as an array of strings.
``` javascript
var mock = require('mawk');
function sum(one, two) {
return one + two;
}
mock.args(sum);
// => [ 'one', 'two' ]
```
### mawk.as(name, value)
[](#mawkasname-value)
Creates a mock with specified `name` that resolves to the specified `value`.
``` javascript
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)
[](#mawkfactoryname-fn)
Creates a mock with specified `name` that resolves to the value returned from
the function `fn`.
``` javascript
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)
[](#mawkrequirename)
Creates a mock from the module with specified `name`.
``` javascript
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)
[](#mawkresolvename)
Returns the value of the mock with the specified `name`.
``` javascript
var mock = require('mawk');
mock('one').as(1);
mock('two').as(2);
mock.resolve('one');
// => 1
mock.resolve('two');
// => 2
```
### mawk.sanitize(name)
[](#mawksanitizename)
Returns a sanitized version of `name` suitable for use as a JavaScript function argument.
``` javascript
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'
```