|
|
|
@ -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); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|