You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
const { expectThrow } = require('./helpers/expectThrow');
|
|
const { ethGetBalance, ethSendTransaction } = require('./helpers/web3');
|
|
|
|
const SimpleSavingsWallet = artifacts.require('SimpleSavingsWallet');
|
|
|
|
const BigNumber = web3.BigNumber;
|
|
|
|
require('chai')
|
|
.use(require('chai-bignumber')(BigNumber))
|
|
.should();
|
|
|
|
contract('SimpleSavingsWallet', function ([_, owner, anyone]) {
|
|
let savingsWallet;
|
|
|
|
const paymentAmount = 4242;
|
|
|
|
beforeEach(async function () {
|
|
savingsWallet = await SimpleSavingsWallet.new(4141, { from: owner });
|
|
});
|
|
|
|
it('should receive funds', async function () {
|
|
await ethSendTransaction({ from: owner, to: savingsWallet.address, value: paymentAmount });
|
|
const balance = await ethGetBalance(savingsWallet.address);
|
|
balance.should.be.bignumber.equal(paymentAmount);
|
|
});
|
|
|
|
it('owner can send funds', async function () {
|
|
// Receive payment so we have some money to spend.
|
|
await ethSendTransaction({ from: anyone, to: savingsWallet.address, value: 1000000 });
|
|
|
|
await expectThrow(savingsWallet.sendTo(0, paymentAmount, { from: owner }));
|
|
await expectThrow(savingsWallet.sendTo(savingsWallet.address, paymentAmount, { from: owner }));
|
|
await expectThrow(savingsWallet.sendTo(anyone, 0, { from: owner }));
|
|
|
|
const balance = await ethGetBalance(anyone);
|
|
await savingsWallet.sendTo(anyone, paymentAmount, { from: owner });
|
|
const updatedBalance = await ethGetBalance(anyone);
|
|
balance.plus(paymentAmount).should.be.bignumber.equal(updatedBalance);
|
|
});
|
|
});
|
|
|