Added time helper tests. (#1521)

* Added time tests.

* Minor improvements.
pull/1491/head^2
Nicolás Venturo 6 years ago committed by GitHub
parent c2de8ffd14
commit 6407d7818d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 68
      test/helpers/test/time.test.js
  2. 4
      test/helpers/time.js

@ -0,0 +1,68 @@
const time = require('../time');
const shouldFail = require('../shouldFail');
const { advanceBlock } = require('../advanceToBlock');
const BigNumber = web3.BigNumber;
require('chai')
.use(require('chai-bignumber')(BigNumber))
.should();
describe('time', function () {
const TOLERANCE_SECONDS = 1;
beforeEach(async function () {
await advanceBlock();
this.start = await time.latest();
});
describe('increase', function () {
it('increases time by a duration', async function () {
await time.increase(time.duration.hours(1));
const end = this.start + time.duration.hours(1);
(await time.latest()).should.be.closeTo(end, TOLERANCE_SECONDS);
});
it('throws with negative durations', async function () {
await shouldFail(time.increase(-1));
});
});
describe('increaseTo', function () {
it('increases time to a time in the future', async function () {
const end = this.start + time.duration.hours(1);
await time.increaseTo(end);
(await time.latest()).should.be.closeTo(end, TOLERANCE_SECONDS);
});
it('throws with a time in the past', async function () {
await shouldFail(time.increaseTo(this.start - 30));
});
});
describe('duration', function () {
it('converts seconds to seconds', function () {
time.duration.seconds(1).should.equal(1);
});
it('converts minutes to seconds', function () {
time.duration.minutes(1).should.equal(60);
});
it('converts hours to seconds', function () {
time.duration.hours(1).should.equal(60 * 60);
});
it('converts days to seconds', function () {
time.duration.days(1).should.equal(60 * 60 * 24);
});
it('converts weeks to seconds', function () {
time.duration.weeks(1).should.equal(60 * 60 * 24 * 7);
});
it('converts years to seconds', function () {
time.duration.years(1).should.equal(60 * 60 * 24 * 365);
});
});
});

@ -11,6 +11,8 @@ function increase (duration) {
const id = Date.now();
return new Promise((resolve, reject) => {
if (duration < 0) throw Error(`Cannot increase time by a negative amount (${duration})`);
web3.currentProvider.sendAsync({
jsonrpc: '2.0',
method: 'evm_increaseTime',
@ -40,7 +42,7 @@ function increase (duration) {
async function increaseTo (target) {
const now = (await latest());
if (target < now) throw Error(`Cannot increase current time(${now}) to a moment in the past(${target})`);
if (target < now) throw Error(`Cannot increase current time (${now}) to a moment in the past (${target})`);
const diff = target - now;
return increase(diff);
}

Loading…
Cancel
Save