UNPKG

@0xcert/ethereum-gateway-contracts

Version:

Smart contracts used by the gateway on the Ethereum blockchain.

59 lines (49 loc) 1.76 kB
import { Spec } from '@specron/spec'; import { XcertDeployGateway } from '../../core/types'; interface Data { xcertDeployGateway?: any; jane?: string; sara?: string; owner?: string; } const spec = new Spec<Data>(); spec.before(async (ctx) => { const accounts = await ctx.web3.eth.getAccounts(); ctx.set('owner', accounts[0]); ctx.set('jane', accounts[1]); ctx.set('sara', accounts[2]); }); spec.beforeEach(async (ctx) => { const accounts = await ctx.web3.eth.getAccounts(); const xcertDeployGateway = await ctx.deploy({ src: './build/xcert-deploy-gateway.json', contract: 'XcertDeployGateway', args: [ accounts[0], accounts[1], accounts[2], accounts[3], accounts[4], accounts[5], accounts[6], ], }); ctx.set('xcertDeployGateway', xcertDeployGateway); }); spec.test('Sets new deploy proxy', async (ctx) => { const owner = ctx.get('owner'); const jane = ctx.get('jane'); const xcertDeployGateway = ctx.get('xcertDeployGateway'); await xcertDeployGateway.instance.methods.grantAbilities(owner, XcertDeployGateway.SET_PROXY).send({ from: owner }); const logs = await xcertDeployGateway.instance.methods.setDeployProxy(jane).send({ from: owner }); ctx.not(logs.events.ProxyChange, undefined); const deployProxy = await xcertDeployGateway.instance.methods.xcertDeployProxy().call(); ctx.is(deployProxy, jane); }); spec.test('Fails setting new deploy proxy without permission', async (ctx) => { const owner = ctx.get('owner'); const jane = ctx.get('jane'); const xcertDeployGateway = ctx.get('xcertDeployGateway'); await ctx.reverts(() => xcertDeployGateway.instance.methods.setDeployProxy(jane).send({ from: owner }), '017001'); }); export default spec;