Skip to content
This repository has been archived by the owner on Feb 26, 2024. It is now read-only.

Commit

Permalink
test: add simple tests that fork Infura networks (#610)
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeseese authored Sep 2, 2020
1 parent 196fcce commit 97b6dd4
Show file tree
Hide file tree
Showing 130 changed files with 269 additions and 98 deletions.
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,9 @@ before_install:
export LINKXX="g++-5";
fi

script:
- npm run test
- npm run test-smoke

after_success:
npm run coverage
7 changes: 7 additions & 0 deletions lib/forking/forked_blockchain.js
Original file line number Diff line number Diff line change
Expand Up @@ -820,4 +820,11 @@ ForkedBlockchain.prototype.getBlockLogs = function(number, callback) {
});
};

ForkedBlockchain.prototype.close = function(callback) {
if (this.fork.disconnect) {
this.fork.disconnect();
}
BlockchainDouble.prototype.close.call(this, callback);
};

module.exports = ForkedBlockchain;
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"format": "prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .",
"prepublishOnly": "npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap",
"postpublish": "rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci",
"test": "npm run _lint && npm run nyc_mocha",
"test": "npm run _lint && npm run nyc_mocha ./test/local",
"test-smoke": "npm run _mocha ./test/smoke",
"test-build": "cross-env TEST_BUILD=node npm run _mocha",
"test-web-experimental": "cross-env TEST_BUILD=web-experimental npm run _mocha",
"coverage": "nyc report --reporter=text-lcov | coveralls"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions test/accounts.js → test/local/accounts.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const assert = require("assert");
const initializeTestProvider = require("./helpers/web3/initializeTestProvider");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const { BN } = require("ethereumjs-util");
var Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
const genSend = require("./helpers/utils/rpc");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const genSend = require("../helpers/utils/rpc");
const Account = require("ethereumjs-account").default;
const { promisify } = require("util");
const utils = require("ethereumjs-util");
Expand Down
4 changes: 2 additions & 2 deletions test/bad_input.js → test/local/bad_input.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
var Web3 = require("web3");
var Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
var assert = require("assert-match");
var regex = require("assert-match/matchers").regex;

Expand Down
4 changes: 2 additions & 2 deletions test/block-tags.js → test/local/block-tags.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const assert = require("assert");
const initializeTestProvider = require("./helpers/web3/initializeTestProvider");
const compile = require("./helpers/contract/singleFileCompile");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const compile = require("../helpers/contract/singleFileCompile");

describe("Block Tags", function() {
let context;
Expand Down
2 changes: 1 addition & 1 deletion test/call.js → test/local/call.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const bootstrap = require("./helpers/contract/bootstrap");
const bootstrap = require("../helpers/contract/bootstrap");

describe("eth_call", function() {
const contractRef = {
Expand Down
2 changes: 1 addition & 1 deletion test/call/undefined.js → test/local/call/undefined.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const bootstrap = require("../../helpers/contract/bootstrap");

describe("Undefined", () => {
describe("Calls", () => {
Expand Down
2 changes: 1 addition & 1 deletion test/cors.js → test/local/cors.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const Ganache = require("../index.js");
const Ganache = require("../../index.js");
const request = require("request");
const pify = require("pify");

Expand Down
6 changes: 3 additions & 3 deletions test/debug/debug.js → test/local/debug/debug.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const bootstrap = require("../../helpers/contract/bootstrap");
const { promisify } = require("util");
var Ganache = require(process.env.TEST_BUILD
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
? "../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../index.js");

// Thanks solc. At least this works!
// This removes solc's overzealous uncaughtException event handler.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const bootstrap = require("../../helpers/contract/bootstrap");

// Thanks solc. At least this works!
// This removes solc's overzealous uncaughtException event handler.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const bootstrap = require("./helpers/contract/bootstrap");
const bootstrap = require("../helpers/contract/bootstrap");

describe("Constantinople Hardfork", function() {
const mnemonic = "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat";
Expand Down
2 changes: 1 addition & 1 deletion test/ethereum.js → test/local/ethereum.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const initializeTestProvider = require("./helpers/web3/initializeTestProvider");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");

describe("Ethereum", function() {
it("should get ethereum version (eth_protocolVersion)", async function() {
Expand Down
2 changes: 1 addition & 1 deletion test/ethers.js → test/local/ethers.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const assert = require("assert");
const { BN } = require("ethereumjs-util");
const ethers = require("ethers");
const intializeTestProvider = require("./helpers/web3/initializeTestProvider");
const intializeTestProvider = require("../helpers/web3/initializeTestProvider");

describe("ethers", async() => {
let ethersProvider, wallet, gasPrice, value;
Expand Down
6 changes: 3 additions & 3 deletions test/events.js → test/local/events.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
var Web3 = require("web3");
var Web3WsProvider = require("web3-providers-ws");
var Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
var assert = require("assert");
const compile = require("./helpers/contract/singleFileCompile");
const compile = require("../helpers/contract/singleFileCompile");

var tests = function(web3, EventTest) {
var accounts;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ var Web3 = require("web3");
var Web3WsProvider = require("web3-providers-ws");
var assert = require("assert");
var Ganache = require(process.env.TEST_BUILD
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const compile = require("../helpers/contract/singleFileCompile");
? "../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../index.js");
const compile = require("../../helpers/contract/singleFileCompile");
var logger = {
log: function(msg) {
/* console.log(msg) */
Expand Down
12 changes: 6 additions & 6 deletions test/forking/forking.js → test/local/forking/forking.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
const Transaction = require("../../lib/utils/transaction");
const Transaction = require("../../../lib/utils/transaction");
var Web3 = require("web3");
var Web3WsProvider = require("web3-providers-ws");
var assert = require("assert");
var Ganache = require(process.env.TEST_BUILD
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
? "../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../index.js");

const compile = require("../helpers/contract/singleFileCompile");
var to = require("../../lib/utils/to.js");
var generateSend = require("../helpers/utils/rpc");
const compile = require("../../helpers/contract/singleFileCompile");
var to = require("../../../lib/utils/to.js");
var generateSend = require("../../helpers/utils/rpc");

var logger = {
log: function(msg) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const intializeTestProvider = require("../helpers/web3/initializeTestProvider");
const bootstrap = require("../../helpers/contract/bootstrap");
const intializeTestProvider = require("../../helpers/web3/initializeTestProvider");

/**
* NOTE: Naming in these tests is a bit confusing. Here, the "main chain"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const initializeTestProvider = require("../../helpers/web3/initializeTestProvider");

describe("Gas", function() {
describe("Custom Gas Limit", function() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const initializeTestProvider = require("../../helpers/web3/initializeTestProvider");

describe("Gas", function() {
describe("Custom Gas Price", function() {
Expand Down
14 changes: 7 additions & 7 deletions test/gas/gas.js → test/local/gas/gas.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
const memdown = require("memdown");
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const bootstrap = require("../../helpers/contract/bootstrap");
const confirmGasPrice = require("./lib/confirmGasPrice");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const randomInteger = require("../helpers/utils/generateRandomInteger");
const initializeTestProvider = require("../../helpers/web3/initializeTestProvider");
const randomInteger = require("../../helpers/utils/generateRandomInteger");
const testTransactionEstimate = require("./lib/transactionEstimate");
const toBytesHexString = require("../helpers/utils/toBytesHexString");
const { deploy } = require("../helpers/contract/compileAndDeploy");
const toBytesHexString = require("../../helpers/utils/toBytesHexString");
const { deploy } = require("../../helpers/contract/compileAndDeploy");
const { BN } = require("ethereumjs-util");
const compile = require("../helpers/contract/singleFileCompile");
const createSignedTx = require("../helpers/utils/create-signed-tx");
const compile = require("../../helpers/contract/singleFileCompile");
const createSignedTx = require("../../helpers/utils/create-signed-tx");
const SEED_RANGE = 1000000;
const RSCLEAR_REFUND = 15000;
const RSCLEAR_REFUND_FOR_RESETTING_DIRTY_SLOT_TO_ZERO_ISTANBUL = 19200;
Expand Down
6 changes: 3 additions & 3 deletions test/gas/gasLimit.js → test/local/gas/gasLimit.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const assert = require("assert");
const to = require("../../lib/utils/to.js");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const randomInteger = require("../helpers/utils/generateRandomInteger");
const to = require("../../../lib/utils/to.js");
const initializeTestProvider = require("../../helpers/web3/initializeTestProvider");
const randomInteger = require("../../helpers/utils/generateRandomInteger");
const SEED_RANGE = 1000000;

describe("Gas", function() {
Expand Down
6 changes: 3 additions & 3 deletions test/gas/gasPrice.js → test/local/gas/gasPrice.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const assert = require("assert");
const bootstrap = require("../helpers/contract/bootstrap");
const { hex } = require("../../lib/utils/to");
const randomInteger = require("../helpers/utils/generateRandomInteger");
const bootstrap = require("../../helpers/contract/bootstrap");
const { hex } = require("../../../lib/utils/to");
const randomInteger = require("../../helpers/utils/generateRandomInteger");
const SEED_RANGE = 1000000;

describe("Gas", function() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const to = require("../../../lib/utils/to.js");
const to = require("../../../../lib/utils/to.js");
const numberToBN = require("number-to-bn");

const confirmGasPrice = async(
Expand Down
2 changes: 1 addition & 1 deletion test/hex.js → test/local/hex.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require("assert");
const to = require("../lib/utils/to.js");
const to = require("../../lib/utils/to.js");

describe("to.rpcQuantityHexString", function() {
it("should print '0x0' for input '0x'", function() {
Expand Down
8 changes: 4 additions & 4 deletions test/interval-mining.js → test/local/interval-mining.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const { BN } = require("ethereumjs-util");
const assert = require("assert");
const sleep = require("./helpers/utils/sleep");
const initializeTestProvider = require("./helpers/web3/initializeTestProvider");
const { compile } = require("./helpers/contract/compileAndDeploy");
const generateRandomInteger = require("./helpers/utils/generateRandomInteger");
const sleep = require("../helpers/utils/sleep");
const initializeTestProvider = require("../helpers/web3/initializeTestProvider");
const { compile } = require("../helpers/contract/compileAndDeploy");
const generateRandomInteger = require("../helpers/utils/generateRandomInteger");
const seed = generateRandomInteger(1000000);

describe("Interval Mining", function() {
Expand Down
4 changes: 2 additions & 2 deletions test/library.js → test/local/library.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const Web3 = require("web3");
const Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const fs = require("fs");
const path = require("path");
const solc = require("solc");
Expand Down
6 changes: 3 additions & 3 deletions test/mining.js → test/local/mining.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const { BN } = require("ethereumjs-util");
var Web3 = require("web3");
var Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
var assert = require("assert");
var to = require("../lib/utils/to.js");
var to = require("../../lib/utils/to.js");
var solc = require("solc");
var pify = require("pify");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ const fs = require("fs");
const path = require("path");
const assert = require("assert");
const Ganache = require(process.env.TEST_BUILD
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
? "../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../index.js");

describe("options:account_keys_path", function() {
const fileName = path.join(__dirname, "/test-file.json");
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ const assert = require("assert");
const portfinder = require("portfinder");
const request = require("request");
const Ganache = require(process.env.TEST_BUILD
? "../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../index.js");
? "../../../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../../../index.js");

const sleep = require("../../helpers/utils/sleep");
const sleep = require("../../../helpers/utils/sleep");

const testTimeout = async(keepAliveTimeout, sleepTime, errorMessage) => {
const host = "127.0.0.1";
Expand Down
8 changes: 4 additions & 4 deletions test/persistence.js → test/local/persistence.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
const Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const temp = require("temp").track();
const memdown = require("memdown");
const { join } = require("path");
const assert = require("assert");
const Web3 = require("web3");
const generateSend = require("./helpers/utils/rpc");
const compile = require("./helpers/contract/singleFileCompile");
const generateSend = require("../helpers/utils/rpc");
const compile = require("../helpers/contract/singleFileCompile");

const { result } = compile("./test/contracts/examples/", "Example");

Expand Down
4 changes: 2 additions & 2 deletions test/public-exports.js → test/local/public-exports.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const assert = require("assert");

describe("BuildType", function() {
Expand Down
14 changes: 7 additions & 7 deletions test/requests.js → test/local/requests.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
const Web3 = require("web3");
const BN = Web3.utils.BN;
const Web3WsProvider = require("web3-providers-ws");
const Transaction = require("../lib/utils/transaction");
const Transaction = require("../../lib/utils/transaction");
const BlockHeader = require("ethereumjs-block/header");
const utils = require("ethereumjs-util");
const assert = require("assert");
const Ganache = require(process.env.TEST_BUILD
? "../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../index.js");
const to = require("../lib/utils/to");
? "../../build/ganache.core." + process.env.TEST_BUILD + ".js"
: "../../index.js");
const to = require("../../lib/utils/to");
const _ = require("lodash");
const pify = require("pify");
const generateSend = require("./helpers/utils/rpc");
const compile = require("./helpers/contract/singleFileCompile");
const generateSend = require("../helpers/utils/rpc");
const compile = require("../helpers/contract/singleFileCompile");
const hasOwnProperty = Object.prototype.hasOwnProperty;

const { result: compilationResult, source } = compile("./test/contracts/examples/", "Example");
Expand Down Expand Up @@ -810,7 +810,7 @@ const tests = function(web3) {

await assert.doesNotReject(web3.eth.sendSignedTransaction(transaction.serialize()));

assert(require("../package.json").version.startsWith("2."), "Version 3 should change this so the test fails!");
assert(require("../../package.json").version.startsWith("2."), "Version 3 should change this so the test fails!");
});
});

Expand Down
4 changes: 2 additions & 2 deletions test/runTimeErrors.js → test/local/runTimeErrors.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const assert = require("assert");
const to = require("../lib/utils/to");
const bootstrap = require("./helpers/contract/bootstrap");
const to = require("../../lib/utils/to");
const bootstrap = require("../helpers/contract/bootstrap");

const providerOptions = [{ vmErrorsOnRPCResponse: true }, { vmErrorsOnRPCResponse: false }];

Expand Down
Loading

0 comments on commit 97b6dd4

Please sign in to comment.