From 1a9cdf7decdb6bb4c7c2fbaad95c8039d4cec44c Mon Sep 17 00:00:00 2001 From: Facundo Spagnuolo Date: Fri, 12 Apr 2019 13:50:41 -0300 Subject: [PATCH] Payroll: Use TimeHelpersMock to simulate past --- .../test/contracts/Payroll_gas_costs.test.js | 1 - .../test/contracts/Payroll_payday.test.js | 16 ++++++++-------- .../contracts/Payroll_reimbursements.test.js | 10 +++++----- .../test-helpers/contracts/TimeHelpersMock.sol | 8 ++++++++ 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/future-apps/payroll/test/contracts/Payroll_gas_costs.test.js b/future-apps/payroll/test/contracts/Payroll_gas_costs.test.js index b3da215d1f..98ff7b95a0 100644 --- a/future-apps/payroll/test/contracts/Payroll_gas_costs.test.js +++ b/future-apps/payroll/test/contracts/Payroll_gas_costs.test.js @@ -32,7 +32,6 @@ contract('Payroll gas costs', ([owner, employee, anotherEmployee]) => { beforeEach('initialize payroll app', async () => { await payroll.initialize(finance.address, denominationToken.address, priceFeed.address, RATE_EXPIRATION_TIME, { from: owner }) - await payroll.mockSetTimestamp(NOW) const startDate = NOW - ONE_MONTH const salary = annualSalaryPerSecond(100000, TOKEN_DECIMALS) diff --git a/future-apps/payroll/test/contracts/Payroll_payday.test.js b/future-apps/payroll/test/contracts/Payroll_payday.test.js index 2e26f702c6..7f534a6c0c 100644 --- a/future-apps/payroll/test/contracts/Payroll_payday.test.js +++ b/future-apps/payroll/test/contracts/Payroll_payday.test.js @@ -150,7 +150,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -199,7 +199,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -249,7 +249,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) itReverts(expiredRatesReason) @@ -496,7 +496,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -548,7 +548,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -638,7 +638,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -735,7 +735,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) itReverts(requestedAmount, expiredRatesReason) @@ -963,7 +963,7 @@ contract('Payroll payday', ([owner, employee, anotherEmployee, anyone]) => { context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { diff --git a/future-apps/payroll/test/contracts/Payroll_reimbursements.test.js b/future-apps/payroll/test/contracts/Payroll_reimbursements.test.js index 616a8eb857..702384b711 100644 --- a/future-apps/payroll/test/contracts/Payroll_reimbursements.test.js +++ b/future-apps/payroll/test/contracts/Payroll_reimbursements.test.js @@ -216,7 +216,7 @@ contract('Payroll reimbursements', ([owner, employee, anotherEmployee, anyone]) context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -265,7 +265,7 @@ contract('Payroll reimbursements', ([owner, employee, anotherEmployee, anyone]) context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -418,7 +418,7 @@ contract('Payroll reimbursements', ([owner, employee, anotherEmployee, anyone]) context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -470,7 +470,7 @@ contract('Payroll reimbursements', ([owner, employee, anotherEmployee, anyone]) context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { @@ -560,7 +560,7 @@ contract('Payroll reimbursements', ([owner, employee, anotherEmployee, anyone]) context('when exchange rates are expired', () => { beforeEach('expire exchange rates', async () => { - await priceFeed.mockSetTimestamp(NOW - TWO_MONTHS) + await priceFeed.mockDecreaseTime(TWO_MONTHS) }) it('reverts', async () => { diff --git a/shared/test-helpers/contracts/TimeHelpersMock.sol b/shared/test-helpers/contracts/TimeHelpersMock.sol index e413e8ef40..6310e0fd83 100644 --- a/shared/test-helpers/contracts/TimeHelpersMock.sol +++ b/shared/test-helpers/contracts/TimeHelpersMock.sol @@ -27,6 +27,14 @@ contract TimeHelpersMock is TimeHelpers { else mockedTimestamp = block.timestamp.add(_seconds); } + /** + * @dev Decreases the mocked timestamp value, used only for testing purposes + */ + function mockDecreaseTime(uint256 _seconds) public { + if (mockedTimestamp != 0) mockedTimestamp = mockedTimestamp.sub(_seconds); + else mockedTimestamp = block.timestamp.sub(_seconds); + } + /** * @dev Advances the mocked block number value, used only for testing purposes */