LimitBalance.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const assertJump = require('./helpers/assertJump');
  2. contract('LimitBalance', function(accounts) {
  3. let lb;
  4. beforeEach(async function() {
  5. lb = await LimitBalanceMock.new();
  6. });
  7. let LIMIT = 1000;
  8. it("should expose limit", async function() {
  9. let limit = await lb.limit();
  10. assert.equal(limit, LIMIT);
  11. });
  12. it("should allow sending below limit", async function() {
  13. let amount = 1;
  14. let limDeposit = await lb.limitedDeposit({value: amount});
  15. assert.equal(web3.eth.getBalance(lb.address), amount);
  16. });
  17. it("shouldnt allow sending above limit", async function() {
  18. let amount = 1110;
  19. try {
  20. let limDeposit = await lb.limitedDeposit({value: amount});
  21. } catch(error) {
  22. assertJump(error);
  23. }
  24. });
  25. it("should allow multiple sends below limit", async function() {
  26. let amount = 500;
  27. let limDeposit = await lb.limitedDeposit({value: amount});
  28. assert.equal(web3.eth.getBalance(lb.address), amount);
  29. let limDeposit2 = await lb.limitedDeposit({value: amount});
  30. assert.equal(web3.eth.getBalance(lb.address), amount*2);
  31. });
  32. it("shouldnt allow multiple sends above limit", async function() {
  33. let amount = 500;
  34. let limDeposit = await lb.limitedDeposit({value: amount});
  35. assert.equal(web3.eth.getBalance(lb.address), amount);
  36. try {
  37. await lb.limitedDeposit({value: amount+1})
  38. } catch(error) {
  39. assertJump(error);
  40. }
  41. });
  42. });