diff --git a/test/SimpleSavingsWallet.js b/test/SimpleSavingsWallet.js index c51972ec8..2722dc1b0 100644 --- a/test/SimpleSavingsWallet.js +++ b/test/SimpleSavingsWallet.js @@ -1,4 +1,5 @@ 'use strict' +import assertJump from './helpers/assertJump' const SimpleSavingsWallet = artifacts.require('../contracts/examples/SimpleSavingsWallet.sol') @@ -6,11 +7,46 @@ contract('SimpleSavingsWallet', function(accounts) { let savingsWallet let owner + const paymentAmount = 4242 + beforeEach(async function() { savingsWallet = await SimpleSavingsWallet.new(4141) - owner = await inheritable.owner() + owner = await savingsWallet.owner() }) it('should receive funds', async function() { - await web3.eth.sendTransaction({from: owner, to: this.contract.address, value: amount}) + await web3.eth.sendTransaction({from: owner, to: savingsWallet.address, value: paymentAmount}) + assert.isTrue( + (new web3.BigNumber(paymentAmount)).equals(web3.eth.getBalance(savingsWallet.address)) + ) }) + + it('owner can send funds', async function() { + // Receive payment so we have some money to spend. + await web3.eth.sendTransaction({from: accounts[9], to: savingsWallet.address, value: 1000000}) + try { + await savingsWallet.sendTo(0, paymentAmount, {from: owner}) + assert.fail('should have thrown before') + } catch(error) { + assertJump(error) + } + try { + await savingsWallet.sendTo(savingsWallet.address, paymentAmount, {from: owner}) + assert.fail('should have thrown before') + } catch(error) { + assertJump(error) + } + try { + await savingsWallet.sendTo(accounts[1], 0, {from: owner}) + assert.fail('should have thrown before') + } catch(error) { + assertJump(error) + } + + const balance = web3.eth.getBalance(accounts[1]) + await savingsWallet.sendTo(accounts[1], paymentAmount, {from: owner}) + assert.isTrue( + balance.plus(paymentAmount).equals(web3.eth.getBalance(accounts[1])) + ) + }) +})