gitiumiota
Version:
IOTA Client Reference Implementation
69 lines (57 loc) • 2.5 kB
text/typescript
import { createHttpClient } from '@iota/http-client'
import { transfers } from '@iota/samples'
import test from 'ava'
import { INVALID_SECURITY_LEVEL, INVALID_SEED, INVALID_START_END_OPTIONS, INVALID_START_OPTION } from '../../../errors'
import { stringify } from '../../../guards'
import { createGetTransfers } from '../../src/createGetTransfers'
import './nocks/findTransactions'
import './nocks/getInclusionStates'
import './nocks/getNodeInfo'
import './nocks/getTrytes'
import './nocks/wereAddressesSpentFrom'
const getTransfers = createGetTransfers(createHttpClient(), 'lib')
const seed = 'SEED'
test('getTransfers() resolves to correct account data', async t => {
t.deepEqual(
await getTransfers(seed, { start: 0, inclusionStates: true }),
transfers,
'getTransfers() should resolve to correct account data'
)
})
test('getTransfers() rejects with correct errors for invalid inputs', t => {
const invalidSeed = 'asdasDSFDAFD'
const invalidStartEndOptions = {
start: 10,
end: 9,
}
t.is(
t.throws(() => getTransfers(invalidSeed, { start: 0 }), Error).message,
`${INVALID_SEED}: ${stringify(invalidSeed)}`,
'getTransfers() should throw correct error for invalid seed'
)
t.is(
t.throws(() => getTransfers(seed, { start: -1 }), Error).message,
`${INVALID_START_OPTION}: ${stringify(-1)}`,
'getTransfers() should throw correct error for invalid start option'
)
t.is(
t.throws(() => getTransfers(seed, invalidStartEndOptions), Error).message,
`${INVALID_START_END_OPTIONS}: ${stringify(invalidStartEndOptions)}`,
'getTransfers() should throw correct error for invalid start & end options'
)
t.is(
t.throws(() => getTransfers(seed, { start: 0, security: -1 }), Error).message,
`${INVALID_SECURITY_LEVEL}: ${stringify(-1)}`,
'getTransfers() should throw correct error for invalid security level'
)
})
test.cb('getTransfers() invokes callback', t => {
getTransfers(seed, { start: 0 }, t.end)
})
test.cb('getTransfers() passes correct arguments to callback', t => {
getTransfers(seed, { start: 0, inclusionStates: true }, (err, res) => {
t.is(err, null, 'getTransfers() should pass null as first argument in callback for successuful requests')
t.deepEqual(res, transfers, 'getTransfers() should pass the correct response as second argument in callback')
t.end()
})
})