LimitBalance.js 1.5 KB

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