DayLimit.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. contract('DayLimit', function(accounts) {
  2. it('should construct with the passed daily limit', async function() {
  3. let initLimit = 10;
  4. let dayLimit = await DayLimitMock.new(initLimit);
  5. let dailyLimit = await dayLimit.dailyLimit();
  6. assert.equal(initLimit, dailyLimit);
  7. });
  8. it('should be able to spend if daily limit is not reached', async function() {
  9. let limit = 10;
  10. let dayLimit = await DayLimitMock.new(limit);
  11. await dayLimit.attemptSpend(8);
  12. let spentToday = await dayLimit.spentToday();
  13. assert.equal(spentToday, 8);
  14. await dayLimit.attemptSpend(2);
  15. spentToday = await dayLimit.spentToday();
  16. assert.equal(spentToday, 10);
  17. });
  18. it('should prevent spending if daily limit is reached', async function() {
  19. let limit = 10;
  20. let dayLimit = await DayLimitMock.new(limit);
  21. await dayLimit.attemptSpend(8);
  22. let spentToday = await dayLimit.spentToday();
  23. assert.equal(spentToday, 8);
  24. await dayLimit.attemptSpend(3);
  25. spentToday = await dayLimit.spentToday();
  26. assert.equal(spentToday, 8);
  27. });
  28. it('should allow spending if daily limit is reached and then set higher', async function() {
  29. let limit = 10;
  30. let dayLimit = await DayLimitMock.new(limit);
  31. await dayLimit.attemptSpend(8);
  32. let spentToday = await dayLimit.spentToday();
  33. assert.equal(spentToday, 8);
  34. await dayLimit.attemptSpend(3);
  35. spentToday = await dayLimit.spentToday();
  36. assert.equal(spentToday, 8);
  37. await dayLimit.setDailyLimit(15);
  38. await dayLimit.attemptSpend(3);
  39. spentToday = await dayLimit.spentToday();
  40. assert.equal(spentToday, 11);
  41. });
  42. it('should allow spending if daily limit is reached and then amount spent is reset', async function() {
  43. let limit = 10;
  44. let dayLimit = await DayLimitMock.new(limit);
  45. await dayLimit.attemptSpend(8);
  46. let spentToday = await dayLimit.spentToday();
  47. assert.equal(spentToday, 8);
  48. await dayLimit.attemptSpend(3);
  49. spentToday = await dayLimit.spentToday();
  50. assert.equal(spentToday, 8);
  51. await dayLimit.resetSpentToday(15);
  52. await dayLimit.attemptSpend(3);
  53. spentToday = await dayLimit.spentToday();
  54. assert.equal(spentToday, 3);
  55. });
  56. });