mirror of
				https://github.com/Xahau/xahau.js.git
				synced 2025-11-04 04:55:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			159 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { assert } from 'chai'
 | 
						|
 | 
						|
import { validate, ValidationError } from '../../src'
 | 
						|
import { validateCheckCreate } from '../../src/models/transactions/checkCreate'
 | 
						|
 | 
						|
/**
 | 
						|
 * CheckCreate Transaction Verification Testing.
 | 
						|
 *
 | 
						|
 * Providing runtime verification testing for each specific transaction type.
 | 
						|
 */
 | 
						|
describe('CheckCreate', function () {
 | 
						|
  it(`verifies valid CheckCreate`, function () {
 | 
						|
    const validCheck = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy',
 | 
						|
      SendMax: '100000000',
 | 
						|
      Expiration: 570113521,
 | 
						|
      InvoiceID:
 | 
						|
        '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B',
 | 
						|
      DestinationTag: 1,
 | 
						|
      Fee: '12',
 | 
						|
      NetworkID: 21338,
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.doesNotThrow(() => validateCheckCreate(validCheck))
 | 
						|
    assert.doesNotThrow(() => validate(validCheck))
 | 
						|
  })
 | 
						|
 | 
						|
  it(`throws w/ invalid Destination`, function () {
 | 
						|
    const invalidDestination = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      Destination: 7896214789632154,
 | 
						|
      SendMax: '100000000',
 | 
						|
      Expiration: 570113521,
 | 
						|
      InvoiceID:
 | 
						|
        '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B',
 | 
						|
      DestinationTag: 1,
 | 
						|
      Fee: '12',
 | 
						|
      NetworkID: 21338,
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.throws(
 | 
						|
      () => validateCheckCreate(invalidDestination),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid Destination',
 | 
						|
    )
 | 
						|
    assert.throws(
 | 
						|
      () => validate(invalidDestination),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid Destination',
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it(`throws w/ invalid SendMax`, function () {
 | 
						|
    const invalidSendMax = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy',
 | 
						|
      SendMax: 100000000,
 | 
						|
      Expiration: 570113521,
 | 
						|
      InvoiceID:
 | 
						|
        '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B',
 | 
						|
      DestinationTag: 1,
 | 
						|
      Fee: '12',
 | 
						|
      NetworkID: 21338,
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.throws(
 | 
						|
      () => validateCheckCreate(invalidSendMax),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid SendMax',
 | 
						|
    )
 | 
						|
    assert.throws(
 | 
						|
      () => validate(invalidSendMax),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid SendMax',
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it(`throws w/ invalid DestinationTag`, function () {
 | 
						|
    const invalidDestinationTag = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      NetworkID: 21338,
 | 
						|
      Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy',
 | 
						|
      SendMax: '100000000',
 | 
						|
      Expiration: 570113521,
 | 
						|
      InvoiceID:
 | 
						|
        '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B',
 | 
						|
      DestinationTag: '1',
 | 
						|
      Fee: '12',
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.throws(
 | 
						|
      () => validateCheckCreate(invalidDestinationTag),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid DestinationTag',
 | 
						|
    )
 | 
						|
    assert.throws(
 | 
						|
      () => validate(invalidDestinationTag),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid DestinationTag',
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it(`throws w/ invalid Expiration`, function () {
 | 
						|
    const invalidExpiration = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy',
 | 
						|
      SendMax: '100000000',
 | 
						|
      Expiration: '570113521',
 | 
						|
      InvoiceID:
 | 
						|
        '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B',
 | 
						|
      DestinationTag: 1,
 | 
						|
      Fee: '12',
 | 
						|
      NetworkID: 21338,
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.throws(
 | 
						|
      () => validateCheckCreate(invalidExpiration),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid Expiration',
 | 
						|
    )
 | 
						|
    assert.throws(
 | 
						|
      () => validate(invalidExpiration),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid Expiration',
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it(`throws w/ invalid InvoiceID`, function () {
 | 
						|
    const invalidInvoiceID = {
 | 
						|
      TransactionType: 'CheckCreate',
 | 
						|
      Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo',
 | 
						|
      Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy',
 | 
						|
      SendMax: '100000000',
 | 
						|
      Expiration: 570113521,
 | 
						|
      InvoiceID: 789656963258531,
 | 
						|
      DestinationTag: 1,
 | 
						|
      Fee: '12',
 | 
						|
      NetworkID: 21338,
 | 
						|
    } as any
 | 
						|
 | 
						|
    assert.throws(
 | 
						|
      () => validateCheckCreate(invalidInvoiceID),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid InvoiceID',
 | 
						|
    )
 | 
						|
    assert.throws(
 | 
						|
      () => validate(invalidInvoiceID),
 | 
						|
      ValidationError,
 | 
						|
      'CheckCreate: invalid InvoiceID',
 | 
						|
    )
 | 
						|
  })
 | 
						|
})
 |