aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sra-report
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sra-report')
-rw-r--r--packages/sra-report/CHANGELOG.json9
-rw-r--r--packages/sra-report/README.md18
-rwxr-xr-xpackages/sra-report/bin/sra-report.js2
-rw-r--r--packages/sra-report/package.json7
-rw-r--r--packages/sra-report/src/postman_environment_factory.ts31
-rw-r--r--packages/sra-report/test/test_runner.ts13
6 files changed, 51 insertions, 29 deletions
diff --git a/packages/sra-report/CHANGELOG.json b/packages/sra-report/CHANGELOG.json
index 22aa8ce16..90a807c85 100644
--- a/packages/sra-report/CHANGELOG.json
+++ b/packages/sra-report/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "version": "0.1.0",
+ "changes": [
+ {
+ "note": "Properly export the executable binary",
+ "pr": 588
+ }
+ ]
+ },
+ {
"timestamp": 1525477860,
"version": "0.0.14",
"changes": [
diff --git a/packages/sra-report/README.md b/packages/sra-report/README.md
index 806ac3bf4..d8df36a29 100644
--- a/packages/sra-report/README.md
+++ b/packages/sra-report/README.md
@@ -107,28 +107,16 @@ yarn install
### Build
-If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
+To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-yarn lerna:rebuild
+PKG=@0xproject/sra-report yarn build
```
Or continuously rebuild on change:
```bash
-yarn dev
-```
-
-You can also build this specific package by running the following from within its directory:
-
-```bash
-yarn build
-```
-
-or continuously rebuild on change:
-
-```bash
-yarn build:watch
+PKG=@0xproject/sra-report yarn watch
```
### Clean
diff --git a/packages/sra-report/bin/sra-report.js b/packages/sra-report/bin/sra-report.js
new file mode 100755
index 000000000..8d6bdccf8
--- /dev/null
+++ b/packages/sra-report/bin/sra-report.js
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+require('../lib/src/index.js')
diff --git a/packages/sra-report/package.json b/packages/sra-report/package.json
index 1fc0d3ade..5d2245cc1 100644
--- a/packages/sra-report/package.json
+++ b/packages/sra-report/package.json
@@ -1,11 +1,14 @@
{
"name": "@0xproject/sra-report",
"version": "0.0.14",
+ "engines": {
+ "node" : ">=6.12"
+ },
"description": "Generate reports for standard relayer API compliance",
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"scripts": {
- "build:watch": "tsc -w",
+ "watch": "tsc -w",
"clean": "shx rm -rf lib scripts",
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
"lint": "tslint --project .",
@@ -16,7 +19,7 @@
"manual:postpublish": "yarn build; node ./scripts/postpublish.js"
},
"bin": {
- "sra-report": "lib/src/index.js"
+ "sra-report": "bin/sra-report.js"
},
"repository": {
"type": "git",
diff --git a/packages/sra-report/src/postman_environment_factory.ts b/packages/sra-report/src/postman_environment_factory.ts
index 530cacb07..42389aea2 100644
--- a/packages/sra-report/src/postman_environment_factory.ts
+++ b/packages/sra-report/src/postman_environment_factory.ts
@@ -12,8 +12,22 @@ import { addresses as ropstenAddresses } from './contract_addresses/ropsten_addr
const ENVIRONMENT_NAME = 'SRA Report';
-interface EnvironmentValue {
+export interface EnvironmentValue {
key: string;
+ value: string;
+ enabled: true;
+ type: 'text';
+}
+
+export interface Environment {
+ name: string;
+ values: EnvironmentValue[];
+}
+
+export interface Addresses {
+ WETH: string;
+ ZRX: string;
+ EXCHANGE: string;
}
export const postmanEnvironmentFactory = {
@@ -25,7 +39,7 @@ export const postmanEnvironmentFactory = {
* - Contract addresses based on the network id for making specific queries (ex. baseTokenAddress=ZRX_address)
* - Order properties for making specific queries (ex. maker=orderMaker)
*/
- async createPostmanEnvironmentAsync(url: string, networkId: number) {
+ async createPostmanEnvironmentAsync(url: string, networkId: number): Promise<Environment> {
const orderEnvironmentValues = await createOrderEnvironmentValuesAsync(url);
const allEnvironmentValues = _.concat(
createSchemaEnvironmentValues(),
@@ -40,7 +54,7 @@ export const postmanEnvironmentFactory = {
return environment;
},
};
-function createSchemaEnvironmentValues() {
+function createSchemaEnvironmentValues(): EnvironmentValue[] {
const schemas: Schema[] = _.values(schemasByName);
const schemaEnvironmentValues = _.compact(
_.map(schemas, (schema: Schema) => {
@@ -60,7 +74,7 @@ function createSchemaEnvironmentValues() {
const result = _.concat(schemaEnvironmentValues, createEnvironmentValue('schemaKeys', JSON.stringify(schemaKeys)));
return result;
}
-function createContractAddressEnvironmentValues(networkId: number) {
+function createContractAddressEnvironmentValues(networkId: number): EnvironmentValue[] {
const contractAddresses = getContractAddresses(networkId);
return [
createEnvironmentValue('tokenContractAddress1', contractAddresses.WETH),
@@ -68,7 +82,7 @@ function createContractAddressEnvironmentValues(networkId: number) {
createEnvironmentValue('exchangeContractAddress', contractAddresses.EXCHANGE),
];
}
-async function createOrderEnvironmentValuesAsync(url: string) {
+async function createOrderEnvironmentValuesAsync(url: string): Promise<EnvironmentValue[]> {
const httpClient = new HttpClient(url);
const orders = await httpClient.getOrdersAsync();
const orderIfExists = _.head(orders);
@@ -91,7 +105,7 @@ async function createOrderEnvironmentValuesAsync(url: string) {
];
}
}
-function getContractAddresses(networkId: number) {
+function getContractAddresses(networkId: number): Addresses {
switch (networkId) {
case 1:
return mainnetAddresses;
@@ -105,7 +119,7 @@ function getContractAddresses(networkId: number) {
throw new Error('Unsupported network id');
}
}
-function convertSchemaIdToKey(schemaId: string) {
+function convertSchemaIdToKey(schemaId: string): string {
let result = schemaId;
if (_.startsWith(result, '/')) {
result = result.substr(1);
@@ -113,7 +127,8 @@ function convertSchemaIdToKey(schemaId: string) {
result = `${result}Schema`;
return result;
}
-function createEnvironmentValue(key: string, value: string) {
+
+function createEnvironmentValue(key: string, value: string): EnvironmentValue {
return {
key,
value,
diff --git a/packages/sra-report/test/test_runner.ts b/packages/sra-report/test/test_runner.ts
index bf9b923e7..91ef6aa4e 100644
--- a/packages/sra-report/test/test_runner.ts
+++ b/packages/sra-report/test/test_runner.ts
@@ -3,7 +3,12 @@ import * as chaiAsPromised from 'chai-as-promised';
import * as dirtyChai from 'dirty-chai';
import * as _ from 'lodash';
import 'mocha';
-import { NewmanRunExecution, NewmanRunExecutionAssertion, NewmanRunSummary } from 'newman';
+import {
+ NewmanRunExecution,
+ NewmanRunExecutionAssertion,
+ NewmanRunExecutionAssertionError,
+ NewmanRunSummary,
+} from 'newman';
import * as nock from 'nock';
import * as sraReportCollectionJSON from '../../postman_collections/sra_report.postman_collection.json';
@@ -33,7 +38,7 @@ export const testRunner = {
nockInterceptor: nock.Interceptor,
postmanCollectionFolderName: string,
postmanCollectionRequestName: string,
- ) {
+ ): void {
const newmanRunOptions = {
...baseNewmanRunOptions,
folder: postmanCollectionFolderName,
@@ -87,7 +92,7 @@ export const testRunner = {
postmanCollectionRequestName: string,
malformedJson: object,
correctJson: object,
- ) {
+ ): void {
const newmanRunOptions = {
...baseNewmanRunOptions,
folder: postmanCollectionFolderName,
@@ -116,7 +121,7 @@ function findAssertionErrorIfExists(
summary: NewmanRunSummary,
postmanCollectionRequestName: string,
postmanCollectionAssertionName: string,
-) {
+): NewmanRunExecutionAssertionError | undefined {
const matchingExecutionIfExists = _.find(summary.run.executions, (execution: NewmanRunExecution) => {
return execution.item.name === postmanCollectionRequestName;
});