Files
xahau.js/packages/xrpl/test/models/MPTokenIssuanceSet.test.ts
Shawn Xie 7bf6fecc71 add more mpt flag validations (#2856)
* remove else condition

* validation txfee

* clidation

* lint

* lint

* comments

* lint

* more typechecking

* rm newline

* refactor

* null check

* revert null check

* reuse test
2024-12-19 15:53:16 -05:00

83 lines
2.4 KiB
TypeScript

import { assert } from 'chai'
import { validate, ValidationError, MPTokenIssuanceSetFlags } from '../../src'
const TOKEN_ID = '000004C463C52827307480341125DA0577DEFC38405B0E3E'
/**
* MPTokenIssuanceSet Transaction Verification Testing.
*
* Providing runtime verification testing for each specific transaction type.
*/
describe('MPTokenIssuanceSet', function () {
it(`verifies valid MPTokenIssuanceSet`, function () {
let validMPTokenIssuanceSet = {
TransactionType: 'MPTokenIssuanceSet',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
MPTokenIssuanceID: TOKEN_ID,
Flags: MPTokenIssuanceSetFlags.tfMPTLock,
} as any
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
validMPTokenIssuanceSet = {
TransactionType: 'MPTokenIssuanceSet',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
MPTokenIssuanceID: TOKEN_ID,
Holder: 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG',
Flags: MPTokenIssuanceSetFlags.tfMPTLock,
} as any
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
// It's fine to not specify any flag, it means only tx fee is deducted
validMPTokenIssuanceSet = {
TransactionType: 'MPTokenIssuanceSet',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
MPTokenIssuanceID: TOKEN_ID,
Holder: 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG',
} as any
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
})
it(`throws w/ missing MPTokenIssuanceID`, function () {
const invalid = {
TransactionType: 'MPTokenIssuanceSet',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'MPTokenIssuanceSet: missing field MPTokenIssuanceID',
)
})
it(`throws w/ conflicting flags`, function () {
const invalid = {
TransactionType: 'MPTokenIssuanceSet',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
MPTokenIssuanceID: TOKEN_ID,
} as any
invalid.Flags =
// eslint-disable-next-line no-bitwise -- not needed
MPTokenIssuanceSetFlags.tfMPTLock | MPTokenIssuanceSetFlags.tfMPTUnlock
assert.throws(
() => validate(invalid),
ValidationError,
'MPTokenIssuanceSet: flag conflict',
)
invalid.Flags = { tfMPTLock: true, tfMPTUnlock: true }
assert.throws(
() => validate(invalid),
ValidationError,
'MPTokenIssuanceSet: flag conflict',
)
})
})