LimitBalance.test.js 1.5 KB

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