|
@@ -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]))
|
|
|
+ )
|
|
|
+ })
|
|
|
+})
|