add payments p2ms, p2pk, p2pkh, p2sh, p2wpkh, p2wsh
This commit is contained in:
parent
7756c5dd76
commit
f9a739e1db
18 changed files with 2696 additions and 2 deletions
test
65
test/payments.js
Normal file
65
test/payments.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
/* global describe, it */
|
||||
|
||||
const assert = require('assert')
|
||||
const u = require('./payments.utils')
|
||||
|
||||
;['p2ms', 'p2pk', 'p2pkh', 'p2sh', 'p2wpkh', 'p2wsh'].forEach(function (p) {
|
||||
describe(p, function () {
|
||||
const fn = require('../src/payments/' + p)
|
||||
const fixtures = require('./fixtures/' + p)
|
||||
|
||||
fixtures.valid.forEach(function (f, i) {
|
||||
const args = u.preform(f.arguments)
|
||||
|
||||
it(f.description + ' as expected', function () {
|
||||
const actual = fn(args, f.options)
|
||||
u.equate(actual, f.expected, f.arguments)
|
||||
})
|
||||
|
||||
it(f.description + ' as expected (no validation)', function () {
|
||||
const actual = fn(args, Object.assign({}, f.options, {
|
||||
validate: false
|
||||
}))
|
||||
|
||||
u.equate(actual, f.expected, f.arguments)
|
||||
})
|
||||
})
|
||||
|
||||
fixtures.invalid.forEach(function (f) {
|
||||
it('throws ' + (f.description || f.exception), function () {
|
||||
const args = u.preform(f.arguments)
|
||||
|
||||
assert.throws(function () {
|
||||
fn(args, f.options)
|
||||
}, new RegExp(f.exception))
|
||||
})
|
||||
})
|
||||
|
||||
// cross-verify dynamically too
|
||||
if (!fixtures.dynamic) return
|
||||
const { depends, details } = fixtures.dynamic
|
||||
|
||||
details.forEach(function (f) {
|
||||
const detail = u.preform(f)
|
||||
const disabled = {}
|
||||
if (f.disabled) f.disabled.forEach(function (k) { disabled[k] = true })
|
||||
|
||||
for (let key in depends) {
|
||||
if (key in disabled) continue
|
||||
const dependencies = depends[key]
|
||||
|
||||
dependencies.forEach(function (dependency) {
|
||||
if (!Array.isArray(dependency)) dependency = [dependency]
|
||||
|
||||
const args = {}
|
||||
dependency.forEach(function (d) { u.from(d, detail, args) })
|
||||
const expected = u.from(key, detail)
|
||||
|
||||
it(f.description + ', ' + key + ' derives from ' + JSON.stringify(dependency), function () {
|
||||
u.equate(fn(args), expected)
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue