ether and shouldFail tests (#1513)
* Added ether tests. * Added shouldFail base function and tests. * Updated test descriptions. * Reduced gas limit on out-of-gas tests.
This commit is contained in:
95
test/helpers/test/shouldFail.test.js
Normal file
95
test/helpers/test/shouldFail.test.js
Normal file
@ -0,0 +1,95 @@
|
||||
const shouldFail = require('../shouldFail');
|
||||
|
||||
const BigNumber = web3.BigNumber;
|
||||
const should = require('chai')
|
||||
.use(require('chai-bignumber')(BigNumber))
|
||||
.should();
|
||||
|
||||
const Failer = artifacts.require('Failer');
|
||||
|
||||
async function assertFailure (promise) {
|
||||
try {
|
||||
await promise;
|
||||
} catch (error) {
|
||||
return;
|
||||
}
|
||||
should.fail();
|
||||
}
|
||||
|
||||
describe('shouldFail', function () {
|
||||
beforeEach(async function () {
|
||||
this.failer = await Failer.new();
|
||||
});
|
||||
|
||||
describe('shouldFail', function () {
|
||||
it('rejects if no failure occurs', async function () {
|
||||
await assertFailure(shouldFail(this.failer.dontFail()));
|
||||
});
|
||||
|
||||
it('accepts a revert', async function () {
|
||||
await shouldFail(this.failer.failWithRevert());
|
||||
});
|
||||
|
||||
it('accepts a throw', async function () {
|
||||
await shouldFail(this.failer.failWithThrow());
|
||||
});
|
||||
|
||||
it('accepts an out of gas', async function () {
|
||||
await shouldFail(this.failer.failWithOutOfGas({ gas: 2000000 }));
|
||||
});
|
||||
});
|
||||
|
||||
describe('reverting', function () {
|
||||
it('rejects if no failure occurs', async function () {
|
||||
await assertFailure(shouldFail.reverting(this.failer.dontFail()));
|
||||
});
|
||||
|
||||
it('accepts a revert', async function () {
|
||||
await shouldFail.reverting(this.failer.failWithRevert());
|
||||
});
|
||||
|
||||
it('rejects a throw', async function () {
|
||||
await assertFailure(shouldFail.reverting(this.failer.failWithThrow()));
|
||||
});
|
||||
|
||||
it('rejects an outOfGas', async function () {
|
||||
await assertFailure(shouldFail.reverting(this.failer.failWithOutOfGas({ gas: 2000000 })));
|
||||
});
|
||||
});
|
||||
|
||||
describe('throwing', function () {
|
||||
it('rejects if no failure occurs', async function () {
|
||||
await assertFailure(shouldFail.throwing(this.failer.dontFail()));
|
||||
});
|
||||
|
||||
it('accepts a throw', async function () {
|
||||
await shouldFail.throwing(this.failer.failWithThrow());
|
||||
});
|
||||
|
||||
it('rejects a throw', async function () {
|
||||
await assertFailure(shouldFail.throwing(this.failer.failWithRevert()));
|
||||
});
|
||||
|
||||
it('rejects an outOfGas', async function () {
|
||||
await assertFailure(shouldFail.throwing(this.failer.failWithOutOfGas({ gas: 2000000 })));
|
||||
});
|
||||
});
|
||||
|
||||
describe('outOfGas', function () {
|
||||
it('rejects if no failure occurs', async function () {
|
||||
await assertFailure(shouldFail.outOfGas(this.failer.dontFail()));
|
||||
});
|
||||
|
||||
it('accepts an out of gas', async function () {
|
||||
await shouldFail.outOfGas(this.failer.failWithOutOfGas({ gas: 2000000 }));
|
||||
});
|
||||
|
||||
it('rejects a revert', async function () {
|
||||
await assertFailure(shouldFail.outOfGas(this.failer.failWithRevert()));
|
||||
});
|
||||
|
||||
it('rejects a throw', async function () {
|
||||
await assertFailure(shouldFail.outOfGas(this.failer.failWithThrow()));
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user