Add tests for dev-utils package
This commit is contained in:
		@@ -7,8 +7,11 @@
 | 
				
			|||||||
    "scripts": {
 | 
					    "scripts": {
 | 
				
			||||||
        "build:watch": "tsc -w",
 | 
					        "build:watch": "tsc -w",
 | 
				
			||||||
        "build": "tsc",
 | 
					        "build": "tsc",
 | 
				
			||||||
 | 
					        "test": "run-s clean build run_mocha",
 | 
				
			||||||
 | 
					        "test:circleci": "yarn test",
 | 
				
			||||||
 | 
					        "run_mocha": "mocha lib/test/**/*_test.js --bail --exit",
 | 
				
			||||||
        "clean": "shx rm -rf lib",
 | 
					        "clean": "shx rm -rf lib",
 | 
				
			||||||
        "lint": "tslint --project . 'src/**/*.ts'"
 | 
					        "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "license": "Apache-2.0",
 | 
					    "license": "Apache-2.0",
 | 
				
			||||||
    "repository": {
 | 
					    "repository": {
 | 
				
			||||||
@@ -20,9 +23,14 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "homepage": "https://github.com/0xProject/0x.js/packages/dev-utils/README.md",
 | 
					    "homepage": "https://github.com/0xProject/0x.js/packages/dev-utils/README.md",
 | 
				
			||||||
    "devDependencies": {
 | 
					    "devDependencies": {
 | 
				
			||||||
 | 
					        "@types/mocha": "^2.2.42",
 | 
				
			||||||
        "@0xproject/tslint-config": "^0.4.9",
 | 
					        "@0xproject/tslint-config": "^0.4.9",
 | 
				
			||||||
        "@0xproject/types": "^0.2.2",
 | 
					        "@0xproject/types": "^0.2.2",
 | 
				
			||||||
 | 
					        "@0xproject/web3-wrapper": "^0.1.13",
 | 
				
			||||||
        "@types/lodash": "^4.14.86",
 | 
					        "@types/lodash": "^4.14.86",
 | 
				
			||||||
 | 
					        "chai": "^4.0.1",
 | 
				
			||||||
 | 
					        "chai-typescript-typings": "^0.0.3",
 | 
				
			||||||
 | 
					        "mocha": "^4.0.1",
 | 
				
			||||||
        "npm-run-all": "^4.1.2",
 | 
					        "npm-run-all": "^4.1.2",
 | 
				
			||||||
        "shx": "^0.2.2",
 | 
					        "shx": "^0.2.2",
 | 
				
			||||||
        "tslint": "5.8.0",
 | 
					        "tslint": "5.8.0",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								packages/dev-utils/test/blockchain_lifecycle_test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								packages/dev-utils/test/blockchain_lifecycle_test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					import { BlockParamLiteral } from '@0xproject/types';
 | 
				
			||||||
 | 
					import { Web3Wrapper } from '@0xproject/web3-wrapper';
 | 
				
			||||||
 | 
					import * as chai from 'chai';
 | 
				
			||||||
 | 
					import 'mocha';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { BlockchainLifecycle, RPC, web3Factory } from '../src';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const expect = chai.expect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('BlockchainLifecycle tests', () => {
 | 
				
			||||||
 | 
					    const web3 = web3Factory.create();
 | 
				
			||||||
 | 
					    const web3Wrapper = new Web3Wrapper(web3.currentProvider);
 | 
				
			||||||
 | 
					    const rpc = new RPC();
 | 
				
			||||||
 | 
					    const blockchainLifecycle = new BlockchainLifecycle();
 | 
				
			||||||
 | 
					    describe('#startAsync/revertAsync', () => {
 | 
				
			||||||
 | 
					        it('reverts changes in between', async () => {
 | 
				
			||||||
 | 
					            const blockNumberBefore = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            await blockchainLifecycle.startAsync();
 | 
				
			||||||
 | 
					            await rpc.mineBlockAsync();
 | 
				
			||||||
 | 
					            await blockchainLifecycle.revertAsync();
 | 
				
			||||||
 | 
					            const blockNumberAfter = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            expect(blockNumberAfter).to.be.equal(blockNumberBefore);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										42
									
								
								packages/dev-utils/test/rpc_test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								packages/dev-utils/test/rpc_test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					import { BlockParamLiteral } from '@0xproject/types';
 | 
				
			||||||
 | 
					import { Web3Wrapper } from '@0xproject/web3-wrapper';
 | 
				
			||||||
 | 
					import * as chai from 'chai';
 | 
				
			||||||
 | 
					import 'mocha';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { RPC, web3Factory } from '../src';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const expect = chai.expect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('RPC tests', () => {
 | 
				
			||||||
 | 
					    const web3 = web3Factory.create();
 | 
				
			||||||
 | 
					    const web3Wrapper = new Web3Wrapper(web3.currentProvider);
 | 
				
			||||||
 | 
					    const rpc = new RPC();
 | 
				
			||||||
 | 
					    describe('#mineBlockAsync', () => {
 | 
				
			||||||
 | 
					        it('increases block number when called', async () => {
 | 
				
			||||||
 | 
					            const blockNumberBefore = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            await rpc.mineBlockAsync();
 | 
				
			||||||
 | 
					            const blockNumberAfter = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            expect(blockNumberAfter).to.be.equal(blockNumberBefore + 1);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    describe('#increaseTimeAsync', () => {
 | 
				
			||||||
 | 
					        it('increases time when called', async () => {
 | 
				
			||||||
 | 
					            const TIME_DELTA = 1000;
 | 
				
			||||||
 | 
					            const blockTimestamtBefore = await web3Wrapper.getBlockTimestampAsync(BlockParamLiteral.Latest);
 | 
				
			||||||
 | 
					            await rpc.increaseTimeAsync(TIME_DELTA);
 | 
				
			||||||
 | 
					            await rpc.mineBlockAsync();
 | 
				
			||||||
 | 
					            const blockTimestamtAfter = await web3Wrapper.getBlockTimestampAsync(BlockParamLiteral.Latest);
 | 
				
			||||||
 | 
					            expect(blockTimestamtAfter).to.be.at.least(blockTimestamtBefore + TIME_DELTA);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    describe('#takeSnapshotAsync/revertSnapshotAsync', () => {
 | 
				
			||||||
 | 
					        it('reverts changes in between', async () => {
 | 
				
			||||||
 | 
					            const blockNumberBefore = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            const snapshotId = await rpc.takeSnapshotAsync();
 | 
				
			||||||
 | 
					            await rpc.mineBlockAsync();
 | 
				
			||||||
 | 
					            await rpc.revertSnapshotAsync(snapshotId);
 | 
				
			||||||
 | 
					            const blockNumberAfter = await web3Wrapper.getBlockNumberAsync();
 | 
				
			||||||
 | 
					            expect(blockNumberAfter).to.be.equal(blockNumberBefore);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
@@ -7,6 +7,7 @@
 | 
				
			|||||||
        "./src/**/*",
 | 
					        "./src/**/*",
 | 
				
			||||||
        "./test/**/*",
 | 
					        "./test/**/*",
 | 
				
			||||||
        "../../node_modules/types-bn/index.d.ts",
 | 
					        "../../node_modules/types-bn/index.d.ts",
 | 
				
			||||||
 | 
					        "../../node_modules/chai-typescript-typings/index.d.ts",
 | 
				
			||||||
        "../../node_modules/web3-typescript-typings/index.d.ts",
 | 
					        "../../node_modules/web3-typescript-typings/index.d.ts",
 | 
				
			||||||
        "../../node_modules/types-ethereumjs-util/index.d.ts"
 | 
					        "../../node_modules/types-ethereumjs-util/index.d.ts"
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user