LimitBalance.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. contract('LimitBalance', function(accounts) {
  2. let lb;
  3. beforeEach(async function(done) {
  4. lb = await LimitBalanceMock.new();
  5. done();
  6. });
  7. let LIMIT = 1000;
  8. it("should expose limit", async function(done) {
  9. let limit = await lb.limit();
  10. assert.equal(limit, LIMIT);
  11. done();
  12. });
  13. it("should allow sending below limit", async function(done) {
  14. let amount = 1;
  15. let limDeposit = await lb.limitedDeposit({value: amount});
  16. assert.equal(web3.eth.getBalance(lb.address), amount);
  17. done();
  18. });
  19. it("shouldnt allow sending above limit", async function(done) {
  20. let amount = 1110;
  21. try {
  22. let limDeposit = await lb.limitedDeposit({value: amount});
  23. } catch(error) {
  24. if (error.message.search('invalid JUMP') == -1) throw error
  25. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  26. done();
  27. }
  28. });
  29. it("should allow multiple sends below limit", async function(done) {
  30. let amount = 500;
  31. let limDeposit = await lb.limitedDeposit({value: amount});
  32. assert.equal(web3.eth.getBalance(lb.address), amount);
  33. let limDeposit2 = await lb.limitedDeposit({value: amount});
  34. assert.equal(web3.eth.getBalance(lb.address), amount*2);
  35. done();
  36. });
  37. it("shouldnt allow multiple sends above limit", async function(done) {
  38. let amount = 500;
  39. let limDeposit = await lb.limitedDeposit({value: amount});
  40. assert.equal(web3.eth.getBalance(lb.address), amount);
  41. try {
  42. await lb.limitedDeposit({value: amount+1})
  43. } catch(error) {
  44. if (error.message.search('invalid JUMP') == -1) throw error
  45. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  46. done();
  47. }
  48. });
  49. });