From 94b2a85826545a96941439cdc867c67bb1064330 Mon Sep 17 00:00:00 2001 From: Gerardo Nardelli Date: Fri, 22 Nov 2019 14:45:23 -0300 Subject: [PATCH] Add pending unit tests --- test/erc_to_native/foreign_bridge.test.js | 44 +++++++++++++++++++++++ test/validators_test.js | 14 ++++++++ 2 files changed, 58 insertions(+) diff --git a/test/erc_to_native/foreign_bridge.test.js b/test/erc_to_native/foreign_bridge.test.js index b4991f89..a326edce 100644 --- a/test/erc_to_native/foreign_bridge.test.js +++ b/test/erc_to_native/foreign_bridge.test.js @@ -1231,5 +1231,49 @@ contract('ForeignBridge_ERC20_to_Native', async accounts => { expect(await foreignBridge.relayedMessages(transactionHash)).to.be.equal(true) }) }) + describe('claimTokens', async () => { + it('can send erc20', async () => { + const foreignBridgeImpl = await ForeignBridgeErcToNativeMock.new() + const storageProxy = await EternalStorageProxy.new().should.be.fulfilled + await storageProxy.upgradeTo('1', foreignBridgeImpl.address).should.be.fulfilled + const foreignBridge = await ForeignBridgeErcToNativeMock.at(storageProxy.address) + + await foreignBridge.initialize( + validatorContract.address, + dai.address, + requireBlockConfirmations, + gasPrice, + [dailyLimit, maxPerTx, minPerTx], + [homeDailyLimit, homeMaxPerTx], + owner, + decimalShiftZero, + otherSideBridge.address + ) + + expect(await saiTop.caged()).to.be.bignumber.equal(ZERO) + + // Mint sai tokens to the bridge + await sai.mint(foreignBridge.address, halfEther) + + await foreignBridge.claimTokens(sai.address, accounts[3], { from: owner }).should.be.rejectedWith(ERROR_MSG) + + const block = await web3.eth.getBlock('latest') + // Trigger Emergency Shutdown + await saiTop.setCaged(block.number) + + expect(await sai.balanceOf(foreignBridge.address)).to.be.bignumber.equal(halfEther) + expect(await sai.balanceOf(accounts[3])).to.be.bignumber.equal(ZERO) + + await foreignBridge + .claimTokens(sai.address, accounts[3], { from: accounts[3] }) + .should.be.rejectedWith(ERROR_MSG) + await foreignBridge.claimTokens(sai.address, accounts[3], { from: owner }) + expect(await sai.balanceOf(foreignBridge.address)).to.be.bignumber.equal(ZERO) + expect(await sai.balanceOf(accounts[3])).to.be.bignumber.equal(halfEther) + + // reset the caged value + await saiTop.setCaged(0) + }) + }) }) }) diff --git a/test/validators_test.js b/test/validators_test.js index a5969f7d..ca710bb7 100644 --- a/test/validators_test.js +++ b/test/validators_test.js @@ -248,4 +248,18 @@ contract('BridgeValidators', async accounts => { returnedList.should.be.eql(validators) }) }) + describe('#isValidatorDuty', () => { + it('should return if provided valdidator is on duty', async () => { + // Given + const validators = accounts.slice(0, 5) + const { initialize, isValidatorDuty } = bridgeValidators + await initialize(1, validators, owner, { from: owner }).should.be.fulfilled + + // When + const results = await Promise.all(validators.map(v => isValidatorDuty(v))) + + // Then + expect(results.filter(r => r === true).length).to.be.equal(1) + }) + }) })