LimitBalance.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. return assertJump(error);
  23. }
  24. assert.fail('should have thrown before');
  25. });
  26. it("should allow multiple sends below limit", async function() {
  27. let amount = 500;
  28. let limDeposit = await lb.limitedDeposit({value: amount});
  29. assert.equal(web3.eth.getBalance(lb.address), amount);
  30. let limDeposit2 = await lb.limitedDeposit({value: amount});
  31. assert.equal(web3.eth.getBalance(lb.address), amount*2);
  32. });
  33. it("shouldnt allow multiple sends above limit", async function() {
  34. let amount = 500;
  35. let limDeposit = await lb.limitedDeposit({value: amount});
  36. assert.equal(web3.eth.getBalance(lb.address), amount);
  37. try {
  38. await lb.limitedDeposit({value: amount+1})
  39. } catch(error) {
  40. return assertJump(error);
  41. }
  42. assert.fail('should have thrown before');
  43. });
  44. });