123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- contract('DayLimit', function(accounts) {
- it('should construct with the passed daily limit', async function() {
- let initLimit = 10;
- let dayLimit = await DayLimitMock.new(initLimit);
- let dailyLimit = await dayLimit.dailyLimit();
- assert.equal(initLimit, dailyLimit);
- });
- it('should be able to spend if daily limit is not reached', async function() {
- let limit = 10;
- let dayLimit = await DayLimitMock.new(limit);
- await dayLimit.attemptSpend(8);
- let spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.attemptSpend(2);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 10);
- });
- it('should prevent spending if daily limit is reached', async function() {
- let limit = 10;
- let dayLimit = await DayLimitMock.new(limit);
- await dayLimit.attemptSpend(8);
- let spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.attemptSpend(3);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- });
- it('should allow spending if daily limit is reached and then set higher', async function() {
- let limit = 10;
- let dayLimit = await DayLimitMock.new(limit);
- await dayLimit.attemptSpend(8);
- let spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.attemptSpend(3);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.setDailyLimit(15);
- await dayLimit.attemptSpend(3);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 11);
- });
- it('should allow spending if daily limit is reached and then amount spent is reset', async function() {
- let limit = 10;
- let dayLimit = await DayLimitMock.new(limit);
- await dayLimit.attemptSpend(8);
- let spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.attemptSpend(3);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 8);
- await dayLimit.resetSpentToday(15);
- await dayLimit.attemptSpend(3);
- spentToday = await dayLimit.spentToday();
- assert.equal(spentToday, 3);
- });
- });
|