import { chaiSetup, constants, provider, txDefaults, web3Wrapper } from '@0x/contracts-test-utils'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { StringRevertError } from '@0x/utils'; import * as chai from 'chai'; import * as _ from 'lodash'; import { artifacts, TestLibRichErrorsContract } from '../src'; chaiSetup.configure(); const expect = chai.expect; const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); describe('LibRichErrors', () => { let lib: TestLibRichErrorsContract; before(async () => { await blockchainLifecycle.startAsync(); // Deploy SafeMath lib = await TestLibRichErrorsContract.deployFrom0xArtifactAsync( artifacts.TestLibRichErrors, provider, txDefaults, {}, ); }); after(async () => { await blockchainLifecycle.revertAsync(); }); describe('_rrevert', () => { it('should correctly revert the extra bytes', async () => { return expect(lib.externalRRevert.callAsync(constants.NULL_BYTES)).to.revertWith(constants.NULL_BYTES); }); it('should correctly revert a StringRevertError', async () => { const error = new StringRevertError('foo'); return expect(lib.externalRRevert.callAsync(error.encode())).to.revertWith(error); }); }); });