mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-04 13:05:49 +00:00
134 lines
3.6 KiB
TypeScript
134 lines
3.6 KiB
TypeScript
import { assert } from 'chai'
|
|
|
|
import { validate, ValidationError } from '../../src'
|
|
import { validatePaymentChannelClaim } from '../../src/models/transactions/paymentChannelClaim'
|
|
|
|
/**
|
|
* PaymentChannelClaim Transaction Verification Testing.
|
|
*
|
|
* Providing runtime verification testing for each specific transaction type.
|
|
*/
|
|
describe('PaymentChannelClaim', function () {
|
|
let channel
|
|
|
|
beforeEach(function () {
|
|
channel = {
|
|
Account: 'rB5Ux4Lv2nRx6eeoAAsZmtctnBQ2LiACnk',
|
|
TransactionType: 'PaymentChannelClaim',
|
|
Channel:
|
|
'C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198',
|
|
Balance: '1000000',
|
|
Amount: '1000000',
|
|
Signature:
|
|
'30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B',
|
|
PublicKey:
|
|
'32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A',
|
|
}
|
|
})
|
|
|
|
it(`verifies valid PaymentChannelClaim`, function () {
|
|
assert.doesNotThrow(() => validatePaymentChannelClaim(channel))
|
|
assert.doesNotThrow(() => validate(channel))
|
|
})
|
|
|
|
it(`verifies valid PaymentChannelClaim w/o optional`, function () {
|
|
delete channel.Balance
|
|
delete channel.Amount
|
|
delete channel.Signature
|
|
delete channel.PublicKey
|
|
|
|
assert.doesNotThrow(() => validatePaymentChannelClaim(channel))
|
|
assert.doesNotThrow(() => validate(channel))
|
|
})
|
|
|
|
it(`throws w/ missing Channel`, function () {
|
|
delete channel.Channel
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: missing Channel',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: missing Channel',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ invalid Channel`, function () {
|
|
channel.Channel = 100
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Channel must be a string',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Channel must be a string',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ invalid Balance`, function () {
|
|
channel.Balance = 100
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Balance must be an Amount',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Balance must be an Amount',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ invalid Amount`, function () {
|
|
channel.Amount = 1000
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Amount must be an Amount',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Amount must be an Amount',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ invalid Signature`, function () {
|
|
channel.Signature = 1000
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Signature must be a string',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: Signature must be a string',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ invalid PublicKey`, function () {
|
|
channel.PublicKey = ['100000']
|
|
|
|
assert.throws(
|
|
() => validatePaymentChannelClaim(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: PublicKey must be a string',
|
|
)
|
|
assert.throws(
|
|
() => validate(channel),
|
|
ValidationError,
|
|
'PaymentChannelClaim: PublicKey must be a string',
|
|
)
|
|
})
|
|
})
|