From c4ca7f03e33a0085719db805fa6739c8ce6e9ce9 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 10 Nov 2017 13:29:58 -0800 Subject: [PATCH 1/3] improve timer test helper --- test/helpers/timer.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/test/helpers/timer.js b/test/helpers/timer.js index 2a0b7c252..a947b0849 100644 --- a/test/helpers/timer.js +++ b/test/helpers/timer.js @@ -1,15 +1,29 @@ +'use strict'; + // timer for tests specific to testrpc -module.exports = s => { +// s is the amount of seconds to advance +// if account is provided, will send a transaction from that account to force testrpc to mine the block +module.exports = (s) => { return new Promise((resolve, reject) => { web3.currentProvider.sendAsync({ - jsonrpc: '2.0', + jsonrpc: '2.0', method: 'evm_increaseTime', - params: [s], // 60 seaconds, may need to be hex, I forget - id: new Date().getTime() // Id of the request; anything works, really + params: [s], + id: new Date().getTime() }, function(err) { - if (err) return reject(err); - resolve(); + if (err) { + return reject(err); + } + web3.currentProvider.sendAsync({ + jsonrpc: '2.0', + method: 'evm_mine', + id: new Date().getTime() + }, (err, result) => { + if (err) { + return reject(err); + } + resolve(result); + }); }); - //setTimeout(() => resolve(), s * 1000 + 600) // 600ms breathing room for testrpc to sync }); }; From 7dd0ee621214cab1dbfe252368646d4e9bd1be82 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Sun, 12 Nov 2017 15:10:46 -0500 Subject: [PATCH 2/3] remove timer --- test/DayLimit.js | 6 ++++-- test/helpers/timer.js | 29 ----------------------------- 2 files changed, 4 insertions(+), 31 deletions(-) delete mode 100644 test/helpers/timer.js diff --git a/test/DayLimit.js b/test/DayLimit.js index 66befb00e..9d96383c5 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -1,6 +1,7 @@ 'use strict'; const assertJump = require('./helpers/assertJump'); -const timer = require('./helpers/timer'); +import latestTime from './helpers/latestTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' var DayLimitMock = artifacts.require('./helpers/DayLimitMock.sol'); @@ -11,6 +12,7 @@ contract('DayLimit', function(accounts) { let initLimit = 10; beforeEach( async function() { + this.startTime = latestTime(); dayLimit = await DayLimitMock.new(initLimit); }); @@ -99,7 +101,7 @@ contract('DayLimit', function(accounts) { spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); - await timer(day); + await increaseTimeTo(this.startTime + duration.days(1)); await dayLimit.attemptSpend(3); spentToday = await dayLimit.spentToday(); diff --git a/test/helpers/timer.js b/test/helpers/timer.js deleted file mode 100644 index a947b0849..000000000 --- a/test/helpers/timer.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -// timer for tests specific to testrpc -// s is the amount of seconds to advance -// if account is provided, will send a transaction from that account to force testrpc to mine the block -module.exports = (s) => { - return new Promise((resolve, reject) => { - web3.currentProvider.sendAsync({ - jsonrpc: '2.0', - method: 'evm_increaseTime', - params: [s], - id: new Date().getTime() - }, function(err) { - if (err) { - return reject(err); - } - web3.currentProvider.sendAsync({ - jsonrpc: '2.0', - method: 'evm_mine', - id: new Date().getTime() - }, (err, result) => { - if (err) { - return reject(err); - } - resolve(result); - }); - }); - }); -}; From 666a3a73e07dcd080af66a0092dd457ffb787589 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Tue, 14 Nov 2017 12:50:43 -0500 Subject: [PATCH 3/3] remove unused 'day' test variable --- test/DayLimit.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/DayLimit.js b/test/DayLimit.js index 9d96383c5..a71ab6a05 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -6,7 +6,6 @@ import {increaseTimeTo, duration} from './helpers/increaseTime' var DayLimitMock = artifacts.require('./helpers/DayLimitMock.sol'); contract('DayLimit', function(accounts) { - const day = 60 * 60 * 24; let dayLimit; let initLimit = 10;