aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json23
-rw-r--r--src/globals.d.ts1
-rw-r--r--test/0x.js_test.ts2
-rw-r--r--test/contract_wrapper_test.ts25
-rw-r--r--webpack.config.js14
5 files changed, 39 insertions, 26 deletions
diff --git a/package.json b/package.json
index f86d17224..fc2589ee0 100644
--- a/package.json
+++ b/package.json
@@ -10,18 +10,27 @@
"exchange"
],
"scripts": {
- "clean": "shx rm -rf _bundles lib",
- "build:bundle": "webpack",
- "build:commonjs": "tsc; copyfiles -u 2 ./src/artifacts/*.json ../0x.js/lib/src/artifacts;",
- "build": "npm run clean && run-p build:*",
+ "build": "npm run clean && run-p build:*:prod",
"lint": "tslint src/**/*.ts",
- "test": "run-s clean build:commonjs && mocha lib/test/**/*_test.js",
+ "test": "run-s test:commonjs test:umd",
"test:coverage": "nyc npm run test --all",
+ "update_contracts": "for i in ${npm_package_config_artifacts}; do copyfiles -u 4 ../contracts/build/contracts/$i.json ../0x.js/src/artifacts; done;",
+ "testrpc": "testrpc -p 8545 --networkId 50 -m \"concert load couple harbor equip island argue ramp clarify fence smart topic\"",
"docs:json": "typedoc --json docs/index.json .",
"docs:generate": "typedoc --out docs .",
"docs:open": "opn docs/index.html",
- "update_contracts": "for i in ${npm_package_config_artifacts}; do copyfiles -u 4 ../contracts/build/contracts/$i.json ../0x.js/src/artifacts; done;",
- "testrpc": "testrpc -p 8545 --networkId 50 -m \"concert load couple harbor equip island argue ramp clarify fence smart topic\""
+
+ "clean": "shx rm -rf _bundles lib test_temp",
+ "build:dev": "npm run clean && run-p build:*:dev",
+ "build:umd:dev": "webpack",
+ "build:umd:prod": "webpack -p",
+ "build:commonjs:dev": "tsc; copyfiles -u 2 ./src/artifacts/*.json ../0x.js/lib/src/artifacts;",
+ "run_mocha": "mocha test_temp/test/**/*_test.js",
+ "test:commonjs": "run-s build:commonjs:dev setup_commonjs run_mocha tear_down",
+ "test:umd": "run-s build:*:dev setup_umd run_mocha tear_down",
+ "setup_commonjs": "shx cp -r lib test_temp",
+ "setup_umd": "shx mkdir -p test_temp/src && shx cp _bundles/* test_temp/src && shx cp -r lib/test test_temp/test",
+ "tear_down": "shx rm -rf test_temp"
},
"config": {
"artifacts": "Proxy Exchange TokenRegistry Token Mintable EtherToken"
diff --git a/src/globals.d.ts b/src/globals.d.ts
index 827164b4c..0f2fe0f2f 100644
--- a/src/globals.d.ts
+++ b/src/globals.d.ts
@@ -15,6 +15,7 @@ declare interface Schema {
declare namespace Chai {
interface Assertion {
bignumber: Assertion;
+ // HACK: In order to comply with chai-as-promised we make eventually a `PromisedAssertion` not an `Assertion`
eventually: PromisedAssertion;
}
}
diff --git a/test/0x.js_test.ts b/test/0x.js_test.ts
index 6de054437..871e8c727 100644
--- a/test/0x.js_test.ts
+++ b/test/0x.js_test.ts
@@ -5,7 +5,7 @@ import * as BigNumber from 'bignumber.js';
import ChaiBigNumber = require('chai-bignumber');
import * as Sinon from 'sinon';
import {ZeroEx} from '../src/0x.js';
-import {constants} from '../src/utils/constants';
+import {constants} from './utils/constants';
import {web3Factory} from './utils/web3_factory';
// Use BigNumber chai add-on
diff --git a/test/contract_wrapper_test.ts b/test/contract_wrapper_test.ts
index 4ff56ea3e..4bfc49374 100644
--- a/test/contract_wrapper_test.ts
+++ b/test/contract_wrapper_test.ts
@@ -3,21 +3,18 @@ import * as chai from 'chai';
import chaiAsPromised = require('chai-as-promised');
import * as Web3 from 'web3';
import {web3Factory} from './utils/web3_factory';
-import {ExchangeWrapper} from '../src/contract_wrappers/exchange_wrapper';
+import {ZeroEx} from '../src/0x.js';
import {BlockchainLifecycle} from './utils/blockchain_lifecycle';
-import {Web3Wrapper} from './../src/web3_wrapper';
const expect = chai.expect;
chai.use(chaiAsPromised);
const blockchainLifecycle = new BlockchainLifecycle();
describe('ExchangeWrapper', () => {
- let web3Wrapper: Web3Wrapper;
- let exchangeWrapper: ExchangeWrapper;
+ let zeroEx: ZeroEx;
before(async () => {
const web3 = web3Factory.create();
- web3Wrapper = new Web3Wrapper(web3);
- exchangeWrapper = new ExchangeWrapper(web3Wrapper);
+ zeroEx = new ZeroEx(web3);
});
beforeEach(async () => {
await blockchainLifecycle.startAsync();
@@ -42,7 +39,7 @@ describe('ExchangeWrapper', () => {
r: signature.r,
s: signature.s,
};
- expect(exchangeWrapper.isValidSignatureAsync(dataHex, malformedSignature, address))
+ expect(zeroEx.exchange.isValidSignatureAsync(dataHex, malformedSignature, address))
.to.be.rejected;
});
it('r lacks 0x prefix', () => {
@@ -52,7 +49,7 @@ describe('ExchangeWrapper', () => {
r: malformedR,
s: signature.s,
};
- expect(exchangeWrapper.isValidSignatureAsync(dataHex, malformedSignature, address))
+ expect(zeroEx.exchange.isValidSignatureAsync(dataHex, malformedSignature, address))
.to.be.rejected;
});
it('r is too short', () => {
@@ -62,7 +59,7 @@ describe('ExchangeWrapper', () => {
r: malformedR,
s: signature.s.replace('0', 'z'),
};
- expect(exchangeWrapper.isValidSignatureAsync(dataHex, malformedSignature, address))
+ expect(zeroEx.exchange.isValidSignatureAsync(dataHex, malformedSignature, address))
.to.be.rejected;
});
it('s is not hex', () => {
@@ -72,26 +69,26 @@ describe('ExchangeWrapper', () => {
r: signature.r,
s: malformedS,
};
- expect(exchangeWrapper.isValidSignatureAsync(dataHex, malformedSignature, address))
+ expect(zeroEx.exchange.isValidSignatureAsync(dataHex, malformedSignature, address))
.to.be.rejected;
});
});
it('should return false if the data doesn\'t pertain to the signature & address', async () => {
- const isValid = await exchangeWrapper.isValidSignatureAsync('0x0', signature, address);
+ const isValid = await zeroEx.exchange.isValidSignatureAsync('0x0', signature, address);
expect(isValid).to.be.false;
});
it('should return false if the address doesn\'t pertain to the signature & dataHex', async () => {
const validUnrelatedAddress = '0x8b0292B11a196601eD2ce54B665CaFEca0347D42';
- const isValid = await exchangeWrapper.isValidSignatureAsync(dataHex, signature, validUnrelatedAddress);
+ const isValid = await zeroEx.exchange.isValidSignatureAsync(dataHex, signature, validUnrelatedAddress);
expect(isValid).to.be.false;
});
it('should return false if the signature doesn\'t pertain to the dataHex & address', async () => {
const wrongSignature = Object.assign({}, signature, {v: 28});
- const isValid = await exchangeWrapper.isValidSignatureAsync(dataHex, wrongSignature, address);
+ const isValid = await zeroEx.exchange.isValidSignatureAsync(dataHex, wrongSignature, address);
expect(isValid).to.be.false;
});
it('should return true if the signature does pertain to the dataHex & address', async () => {
- const isValid = await exchangeWrapper.isValidSignatureAsync(dataHex, signature, address);
+ const isValid = await zeroEx.exchange.isValidSignatureAsync(dataHex, signature, address);
expect(isValid).to.be.true;
});
});
diff --git a/webpack.config.js b/webpack.config.js
index 67af51f7a..03a7c6cac 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,14 +1,20 @@
/**
* This is to generate the umd bundle only
*/
+const lodash = require('lodash');
const webpack = require('webpack');
const path = require('path');
+const production = process.env.NODE_ENV === 'production';
+
+let entry = {
+ '0x': './src/0x.js.ts',
+};
+if (production) {
+ entry = _.assign({}, entry, {'0x.min': './src/0x.js.ts'});
+}
module.exports = {
- entry: {
- '0x': './src/ts/0x.js.ts',
- '0x.min': './src/ts/0x.js.ts'
- },
+ entry,
output: {
path: path.resolve(__dirname, '_bundles'),
filename: '[name].js',