From 61fc32b7c0078cc1bf2f8840e1f842010bba326f Mon Sep 17 00:00:00 2001 From: Lawrence Forman Date: Sat, 27 Jul 2019 22:36:59 -0400 Subject: [PATCH] `@0x/contracts-test-utils`: Add `optional` modifier to `blockchainTests()`. --- contracts/test-utils/src/mocha_blockchain.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/contracts/test-utils/src/mocha_blockchain.ts b/contracts/test-utils/src/mocha_blockchain.ts index 40dfb14fef..f18d789486 100644 --- a/contracts/test-utils/src/mocha_blockchain.ts +++ b/contracts/test-utils/src/mocha_blockchain.ts @@ -5,6 +5,7 @@ import { TxData, Web3Wrapper } from '@0x/web3-wrapper'; import * as _ from 'lodash'; // Import ambient declarations (and clobber Jest). import 'mocha'; +import * as process from 'process'; import { provider, txDefaults, web3Wrapper } from './web3_wrapper'; @@ -22,10 +23,12 @@ declare global { resets: { only: BlockchainContextDefinitionCallback; skip: BlockchainContextDefinitionCallback; + optional: BlockchainContextDefinitionCallback; (description: string, callback: BlockchainSuiteCallback): ISuite; }; only: BlockchainContextDefinitionCallback; skip: BlockchainContextDefinitionCallback; + optional: BlockchainContextDefinitionCallback; (description: string, callback: BlockchainSuiteCallback): ISuite; } } @@ -124,6 +127,13 @@ export const blockchainTests: Mocha.BlockchainContextDefinition = _.assign( skip(description: string, callback: Mocha.BlockchainSuiteCallback): void { return defineBlockchainSuite(description, callback, describe.skip); }, + optional(description: string, callback: Mocha.BlockchainSuiteCallback): Mocha.ISuite | void { + return defineBlockchainSuite( + description, + callback, + process.env.TEST_ALL ? describe : describe.skip, + ); + }, resets: _.assign( function(description: string, callback: Mocha.BlockchainSuiteCallback): Mocha.ISuite { return defineBlockchainSuite( @@ -153,6 +163,16 @@ export const blockchainTests: Mocha.BlockchainContextDefinition = _.assign( }, ); }, + optional(description: string, callback: Mocha.BlockchainSuiteCallback): Mocha.ISuite | void { + const describeCall = process.env.TEST_ALL ? describe : describe.skip; + return defineBlockchainSuite( + description, + callback, + function(_description: string, _callback: Mocha.SuiteCallback): Mocha.ISuite | void { + return defineResetsSuite(_description, _callback, describeCall); + }, + ); + }, }, ), },