diff --git a/types/web3/providers.d.ts b/types/web3/providers.d.ts index 729ea09278..22a883222f 100644 --- a/types/web3/providers.d.ts +++ b/types/web3/providers.d.ts @@ -12,11 +12,13 @@ interface JsonRPCResponse { error?: string; } +interface Callback { + (error: Error): void; + (error: null, val: ResultType): void; +} + export class Provider { - send( - payload: JsonRPCRequest, - callback: (e: Error, val: JsonRPCResponse) => void - ): any; + send(payload: JsonRPCRequest, callback: Callback): any; } export class WebsocketProvider extends Provider { diff --git a/types/web3/web3-tests.ts b/types/web3/web3-tests.ts index 170a8b22c3..1d7474465e 100644 --- a/types/web3/web3-tests.ts +++ b/types/web3/web3-tests.ts @@ -2,6 +2,7 @@ import Web3 = require("web3"); import BigNumber = require("bn.js"); import { TransactionReceipt } from "web3/types"; import PromiEvent from "web3/promiEvent"; +import { Provider, JsonRPCResponse } from "web3/providers"; const contractAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"; @@ -10,6 +11,25 @@ const contractAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"; // -------------------------------------------------------------------------- const web3 = new Web3(); const myProvider = new web3.providers.HttpProvider("http://localhost:5454"); + +const createFailingHttpProvider = (): Provider => ({ + send(payload, callback) { + callback(new Error("Illegal!")); + } +}); + +const createSuccesfulHttpProvider = (): Provider => ({ + send(payload, callback) { + const response = {}; + callback(null, response as JsonRPCResponse); + } +}); + +const fakeProvider: Provider = createFailingHttpProvider(); +const otherFakeProvider: Provider = createSuccesfulHttpProvider(); + +web3.setProvider(fakeProvider); +web3.setProvider(otherFakeProvider); web3.setProvider(myProvider); web3.eth.setProvider(myProvider);