squid-js/test/keeper/ContractBase.test.ts

74 lines
2.4 KiB
TypeScript

import { assert } from 'chai'
import Account from '../../src/ocean/Account'
import { Ocean } from '../../src/ocean/Ocean'
import config from '../config'
import ContractBaseMock from '../mocks/ContractBase.Mock'
import TestContractHandler from './TestContractHandler'
const wrappedContract = new ContractBaseMock('OceanToken')
let accounts: Account[]
describe('ContractWrapperBase', () => {
before(async () => {
await TestContractHandler.prepareContracts()
const ocean: Ocean = await Ocean.getInstance(config)
accounts = await ocean.accounts.list()
await wrappedContract.initMock((ocean as any).instanceConfig)
})
describe('#call()', () => {
it('should fail to call on an unknown contract function', done => {
wrappedContract.callMock('balanceOfxxx', []).catch(() => {
done()
})
})
it('should fail to call on an contract function with wrong set of parameters', done => {
wrappedContract.callMock('balanceOf', []).catch(() => {
done()
})
})
it('should fail to call on an unknown contract function', done => {
wrappedContract
.sendMock('balanceOfxxx', '0x00', ['0x00'])
.catch(() => {
done()
})
})
it('should fail to call on an contract function with wrong set of parameters', done => {
wrappedContract.sendMock('approve', '0x000', []).catch(() => {
done()
})
})
})
describe('#send()', () => {
it('should fail to call on an unknown contract function', done => {
wrappedContract
.sendMock('transferxxx', accounts[0].getId(), [])
.catch(() => {
done()
})
})
})
describe('#getSignatureOfMethod()', () => {
it('should a signature of the function', async () => {
const sig = wrappedContract.getSignatureOfMethod('name')
assert(sig)
assert(typeof sig === 'string')
assert(sig.startsWith('0x'))
})
})
describe('#getEventData()', () => {
it('should fail on unknown event', done => {
wrappedContract.getEventData('crazyevent', {}).catch(() => {
done()
})
})
})
})