import { assert } from 'chai' import { ValidationError } from 'xrpl-local/common/errors' import { verifyAccountDelete } from '../../src/models/transactions/accountDelete' /** * AccountDelete Transaction Verification Testing. * * Providing runtime verification testing for each specific transaction type. */ describe('AccountDelete', function () { it(`verifies valid AccountDelete`, function () { const validAccountDelete = { TransactionType: 'AccountDelete', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', DestinationTag: 13, Fee: '5000000', Sequence: 2470665, Flags: 2147483648, } as any assert.doesNotThrow(() => verifyAccountDelete(validAccountDelete)) }) it(`throws w/ missing Destination`, function () { const invalidDestination = { TransactionType: 'AccountDelete', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Fee: '5000000', Sequence: 2470665, Flags: 2147483648, } as any assert.throws( () => verifyAccountDelete(invalidDestination), ValidationError, 'AccountDelete: missing field Destination', ) }) it(`throws w/ invalid Destination`, function () { const invalidDestination = { TransactionType: 'AccountDelete', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Destination: 65478965, Fee: '5000000', Sequence: 2470665, Flags: 2147483648, } as any assert.throws( () => verifyAccountDelete(invalidDestination), ValidationError, 'AccountDelete: invalid Destination', ) }) it(`throws w/ invalid DestinationTag`, function () { const invalidDestinationTag = { TransactionType: 'AccountDelete', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', DestinationTag: 'gvftyujnbv', Fee: '5000000', Sequence: 2470665, Flags: 2147483648, } as any assert.throws( () => verifyAccountDelete(invalidDestinationTag), ValidationError, 'AccountDelete: invalid DestinationTag', ) }) })