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() }) }) }) })