From d2dd6e40b6e3de935905933f6a419c8beb396059 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 2 Jul 2017 21:06:58 +0100 Subject: [PATCH] added new test for a day passed scenario to the DayLimit contract --- test/DayLimit.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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); + }); + });