Test messages against Argosy patterns.
Part of the Argosy family.
var assert = require('assert'),
argosyPattern = require('argosy-pattern'),
match = require('argosy-pattern/match')
var pattern = argosyPattern({ hello: 'world', 'message.count': match.number })
var result = pattern.matches({
hello: 'world',
message: {
count: 42
}
})
assert(result)
var argosyPattern = require('argosy-pattern')
Create an Argosy pattern, given an object containing rules. Each key in the object represents a key
that is to be validated in compared message objects. These keys will be tested to have the same literal
value, matching regular expression, or to be of a given type using the matching system described below.
Nested keys may be matched using the dot notation. For example, {'message.count':1}
equates to
{message: {count: 1}}
.
Returns true of the given object matches the pattern, or false otherwise.
Returns an object, representing the pattern, suitable for serialization. This is used internally within Argosy.
var match = require('argosy-pattern/match')
Argosy patterns support more than literal values. The values of the pattern keys may be any of the following in addition to literal values:
- A regular expression - values will be tested against the regular expression to determine a match
match.number
- matches any numbermatch.string
- matches any stringmatch.bool
- matchestrue
orfalse
match.array
- matches any arraymatch.object
- matches any truthy objectmatch.defined
- matches anything other thanundefined
match.undefined
- matchesundefined
or missing key
npm test [--dot | --spec] [--grep=pattern]
Specifying --dot
or --spec
will change the output from the default TAP style.
Specifying --grep
will only run the test files that match the given pattern.
npm run coverage [--html]
This will output a textual coverage report. Including --html
will also open
an HTML coverage report in the default browser.