git.delta.rocks / unique-network / refs/commits / d02af7b15c14

difftreelog

Disconnect detection test.

sotmorskiy2020-09-16parent: #3fd1cbd.patch.diff
in: master

4 files changed

modifiedtests/package-lock.jsondiffbeforeafterboth
4538 "integrity": "sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==",4538 "integrity": "sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==",
4539 "dev": true4539 "dev": true
4540 },4540 },
4541 "@types/chai-as-promised": {
4542 "version": "7.1.3",
4543 "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.3.tgz",
4544 "integrity": "sha512-FQnh1ohPXJELpKhzjuDkPLR2BZCAqed+a6xV4MI/T3XzHfd2FlarfUGUdZYgqYe8oxkYn0fchHEeHfHqdZ96sg==",
4545 "dev": true,
4546 "requires": {
4547 "@types/chai": "*"
4548 }
4549 },
4541 "@types/chrome": {4550 "@types/chrome": {
4542 "version": "0.0.122",4551 "version": "0.0.122",
4543 "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.122.tgz",4552 "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.122.tgz",
6952 "type-detect": "^4.0.5"6961 "type-detect": "^4.0.5"
6953 }6962 }
6954 },6963 },
6964 "chai-as-promised": {
6965 "version": "7.1.1",
6966 "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
6967 "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
6968 "requires": {
6969 "check-error": "^1.0.2"
6970 }
6971 },
6955 "chalk": {6972 "chalk": {
6956 "version": "4.1.0",6973 "version": "4.1.0",
6957 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",6974 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
6976 "check-error": {6993 "check-error": {
6977 "version": "1.0.2",6994 "version": "1.0.2",
6978 "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",6995 "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
6979 "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",6996 "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII="
6980 "dev": true
6981 },6997 },
6982 "chokidar": {6998 "chokidar": {
6983 "version": "2.1.8",6999 "version": "2.1.8",
modifiedtests/package.jsondiffbeforeafterboth
--- a/tests/package.json
+++ b/tests/package.json
@@ -8,6 +8,7 @@
     "@polkadot/ts": "^0.3.41",
     "@types/bn.js": "^4.11.6",
     "@types/chai": "^4.2.12",
+    "@types/chai-as-promised": "^7.1.3",
     "@types/mocha": "^8.0.3",
     "chai": "^4.2.0",
     "mocha": "^8.1.1",
@@ -25,7 +26,8 @@
     "@polkadot/api": "^1.31.2",
     "@polkadot/types": "^1.31.2",
     "@polkadot/util": "^2.18.1",
-    "@types/bn.js": "^4.11.6"
+    "@types/bn.js": "^4.11.6",
+    "chai-as-promised": "^7.1.1"
   },
   "standard": {
     "globals": [
modifiedtests/src/connection.test.tsdiffbeforeafterboth
--- a/tests/src/connection.test.ts
+++ b/tests/src/connection.test.ts
@@ -1,6 +1,12 @@
-import {expect} from 'chai';
 import usingApi from "./substrate/substrate-api";
+import { WsProvider } from '@polkadot/api';
+import * as chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
 
+chai.use(chaiAsPromised);
+
+const expect = chai.expect;
+
 describe('Connection', () => {
   it('Connection can be established', async () => {
     await usingApi(async api => {
@@ -8,4 +14,13 @@
       expect(health).to.be.not.empty;
     });
   });
+
+  it('Cannot connect to 0.0.0.0', () => {
+    const neverConnectProvider = new WsProvider('ws://0.0.0.0:9944');
+    expect((async () => {
+      await usingApi(async api => {
+        const health = await api.rpc.system.health();
+      }, { provider: neverConnectProvider });
+    })()).to.be.eventually.rejected;
+  });
 });
\ No newline at end of file
modifiedtests/src/substrate/substrate-api.tsdiffbeforeafterboth
--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -3,13 +3,17 @@
 import promisifySubstrate from "./promisify-substrate";
 import { ApiOptions } from "@polkadot/api/types";
 
-export default async function usingApi(action: (api: ApiPromise) => Promise<void>): Promise<void> {
+function defaultApiOptions(): ApiOptions {
   const wsProvider = new WsProvider(config.substrateUrl);
-  const settings: ApiOptions = { provider: wsProvider, types: JSON.parse(config.customTypes) };
+  return { provider: wsProvider, types: JSON.parse(config.customTypes) };
+}
+
+export default async function usingApi(action: (api: ApiPromise) => Promise<void>, settings: ApiOptions | undefined = undefined): Promise<void> {
+  settings = settings || defaultApiOptions();
   let api: ApiPromise | undefined = undefined;
 
   try {
-    api = await ApiPromise.create(settings);
+    api = new ApiPromise(settings);
     await promisifySubstrate(api, () => api && api.isReady)();
     await action(api);
   } finally {