diff --git a/test/DayLimit.js b/test/DayLimit.js index 99c565701..28c116df8 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -1,9 +1,11 @@ 'use strict'; const assertJump = require('./helpers/assertJump'); +const timer = require('./helpers/timer'); -var DayLimitMock = artifacts.require('helpers/DayLimitMock.sol'); +var DayLimitMock = artifacts.require('./helpers/DayLimitMock.sol'); contract('DayLimit', function(accounts) { + const day = 60 * 60 * 24; it('should construct with the passed daily limit', async function() { let initLimit = 10; @@ -84,4 +86,27 @@ contract('DayLimit', function(accounts) { assert.equal(spentToday, 3); }); + it('should allow spending if daily limit is reached and then the next has come', async function() { + let limit = 10; + let dayLimit = await DayLimitMock.new(limit); + + await dayLimit.attemptSpend(8); + let spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + try { + await dayLimit.attemptSpend(3); + } catch(error) { + assertJump(error); + } + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await timer(day); + + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 3); + }); + });