LimitBalance.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. contract('LimitBalance', function(accounts) {
  2. var lb;
  3. beforeEach(async function() {
  4. lb = await LimitBalanceMock.new();
  5. });
  6. let LIMIT = 1000;
  7. it("should expose limit", async function() {
  8. let limit = await lb.limit();
  9. assert.equal(limit, LIMIT);
  10. });
  11. it("should allow sending below limit", async function() {
  12. let amount = 1;
  13. let limDeposit = await lb.limitedDeposit({value: amount});
  14. assert.equal(web3.eth.getBalance(lb.address), amount);
  15. });
  16. it("shouldnt allow sending above limit", async function() {
  17. let amount = 1110;
  18. try {
  19. let limDeposit = await lb.limitedDeposit({value: amount});
  20. } catch(error) {
  21. if (error.message.search('invalid JUMP') == -1) throw error
  22. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  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. lb.limitedDeposit({value: amount+1})
  38. } catch(error) {
  39. if (error.message.search('invalid JUMP') == -1) throw error
  40. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  41. }
  42. });
  43. });