|
|
|
contract('LimitBalance', function(accounts) {
|
|
|
|
let lb;
|
|
|
|
|
|
|
|
beforeEach(async function(done) {
|
|
|
|
lb = await LimitBalanceMock.new();
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
|
|
|
|
let LIMIT = 1000;
|
|
|
|
|
|
|
|
it("should expose limit", async function(done) {
|
|
|
|
let limit = await lb.limit();
|
|
|
|
assert.equal(limit, LIMIT);
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should allow sending below limit", async function(done) {
|
|
|
|
let amount = 1;
|
|
|
|
let limDeposit = await lb.limitedDeposit({value: amount});
|
|
|
|
assert.equal(web3.eth.getBalance(lb.address), amount);
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
|
|
|
|
it("shouldnt allow sending above limit", async function(done) {
|
|
|
|
|
|
|
|
let amount = 1110;
|
|
|
|
try {
|
|
|
|
let limDeposit = await lb.limitedDeposit({value: amount});
|
|
|
|
} catch(error) {
|
|
|
|
if (error.message.search('invalid JUMP') == -1) throw error
|
|
|
|
assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should allow multiple sends below limit", async function(done) {
|
|
|
|
let amount = 500;
|
|
|
|
|
|
|
|
let limDeposit = await lb.limitedDeposit({value: amount});
|
|
|
|
assert.equal(web3.eth.getBalance(lb.address), amount);
|
|
|
|
let limDeposit2 = await lb.limitedDeposit({value: amount});
|
|
|
|
assert.equal(web3.eth.getBalance(lb.address), amount*2);
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
|
|
|
|
it("shouldnt allow multiple sends above limit", async function(done) {
|
|
|
|
let amount = 500;
|
|
|
|
|
|
|
|
let limDeposit = await lb.limitedDeposit({value: amount});
|
|
|
|
assert.equal(web3.eth.getBalance(lb.address), amount);
|
|
|
|
try {
|
|
|
|
await lb.limitedDeposit({value: amount+1})
|
|
|
|
} catch(error) {
|
|
|
|
if (error.message.search('invalid JUMP') == -1) throw error
|
|
|
|
assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|