@jamestalmage/empower-assert
v1.1.3
Published
Power Assert feature enhancer for assert function/object
Downloads
7
Maintainers
Readme
empower
Power Assert feature enhancer for assert function/object.
DESCRIPTION
empower
is a core module of power-assert family. empower
enhances standard assert
function or any assert-like object to work with power-assert feature added code instrumented by espower.
empower
works with standard assert
function (best fit with Mocha), and also supports assert-like objects/functions provided by various testing frameworks such as QUnit, buster.js, and nodeunit.
Pull-requests, issue reports and patches are always welcomed. See power-assert project for more documentation.
CHANGELOG
See CHANGELOG
API
var enhancedAssert = empower(originalAssert, formatter, [options])
| return type |
|:-----------------------|
| function
or object
|
empower
function takes function or object(originalAssert
) and formatter
function created by power-assert-formatter then returns PowerAssert feature added function/object base on originalAssert
.
If destructive
option is falsy, originalAssert
will be unchanged. If destructive
option is truthy, originalAssert
will be manipulated directly and returned enhancedAssert
will be the same instance of originalAssert
.
originalAssert
| type | default value |
|:-----------------------|:--------------|
| function
or object
| N/A |
originalAssert
is an instance of standard assert
function or any assert-like object. see SUPPORTED ASSERTION LIBRARIES and ASSERTION LIBRARIES KNOWN TO WORK section. Be careful that originalAssert
will be manipulated directly if destructive
option is truthy.
formatter
| type | default value |
|:-----------|:--------------|
| function
| N/A |
formatter function created by power-assert-formatter.
options
| type | default value |
|:---------|:--------------|
| object
| (return value of empower.defaultOptions()
) |
Configuration options. If not passed, default options will be used.
options.destructive
| type | default value |
|:----------|:--------------|
| boolean
| false
|
If truthy, modify originalAssert
destructively.
If false
, empower mimics originalAssert as new object/function, so originalAssert
will not be changed. If true
, originalAssert
will be manipulated directly and returned enhancedAssert
will be the same instance of originalAssert
.
options.modifyMessageOnRethrow
| type | default value |
|:----------|:--------------|
| boolean
| false
|
If truthy, modify message
property of AssertionError on rethrow.
options.saveContextOnRethrow
| type | default value |
|:----------|:--------------|
| boolean
| false
|
If truthy, add powerAssertContext
property to AssertionError on rethrow.
modifyMessageOnRethrow
option and saveContextOnRethrow
option makes behavior matrix as below.
| modifyMessageOnRethrow | saveContextOnRethrow | resulting behavior |
|:-----------------------|:---------------------|:--------------------------------------------------|
| false
(default) | false
(default) | Always modify assertion message argument directly |
| true
| false
| Modify message
of AssertionError on fail |
| false
| true
| Do not modify message
of AssertionError but add powerAssertContext
property on fail |
| true
| true
| On fail, modify message
of AssertionError and also add powerAssertContext
property |
options.patterns
| type | default value |
|:--------------------|:--------------------|
| Array
of string
| objects shown below |
[
'assert(value, [message])',
'assert.ok(value, [message])',
'assert.equal(actual, expected, [message])',
'assert.notEqual(actual, expected, [message])',
'assert.strictEqual(actual, expected, [message])',
'assert.notStrictEqual(actual, expected, [message])',
'assert.deepEqual(actual, expected, [message])',
'assert.notDeepEqual(actual, expected, [message])',
'assert.deepStrictEqual(actual, expected, [message])',
'assert.notDeepStrictEqual(actual, expected, [message])'
]
Target patterns for power assert feature instrumentation.
Pattern detection is done by escallmatch. Any arguments enclosed in bracket (for example, [message]
) means optional parameters. Without bracket means mandatory parameters.
var options = empower.defaultOptions();
Returns default options object for empower
function. In other words, returns
{
destructive: false,
modifyMessageOnRethrow: false,
saveContextOnRethrow: false,
patterns: [
'assert(value, [message])',
'assert.ok(value, [message])',
'assert.equal(actual, expected, [message])',
'assert.notEqual(actual, expected, [message])',
'assert.strictEqual(actual, expected, [message])',
'assert.notStrictEqual(actual, expected, [message])',
'assert.deepEqual(actual, expected, [message])',
'assert.notDeepEqual(actual, expected, [message])',
'assert.deepStrictEqual(actual, expected, [message])',
'assert.notDeepStrictEqual(actual, expected, [message])'
]
}
SUPPORTED ASSERTION LIBRARIES
ASSERTION LIBRARIES KNOWN TO WORK
INSTALL
via npm
Install
$ npm install --save-dev empower
use empower npm module on browser
empower
function is exported
<script type="text/javascript" src="./path/to/node_modules/empower/build/empower.js"></script>
via bower
Install
$ bower install --save-dev empower
Then load (empower
function is exported)
<script type="text/javascript" src="./path/to/bower_components/empower/build/empower.js"></script>
AUTHOR
CONTRIBUTORS
LICENSE
Licensed under the MIT license.