git.delta.rocks / unique-network / refs/commits / 38fabb78bb57

difftreelog

Hide unneeded debug output

Greg Zaitsev2021-02-01parent: #0379d3a.patch.diff
in: master

2 files changed

modifiedtests/src/setSchemaVersion.test.tsdiffbeforeafterboth
--- a/tests/src/setSchemaVersion.test.ts
+++ b/tests/src/setSchemaVersion.test.ts
@@ -98,12 +98,16 @@
 
   it('execute setSchemaVersion with not correct schema version', async () => {
     await usingApi(async (api: ApiPromise) => {
+      const consoleError = console.error;
+      console.error = (message: string) => {};
       try {
         tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Test');
         await submitTransactionAsync(alice, tx);
       } catch (e) {
         // tslint:disable-next-line:no-unused-expression
         expect(e).to.be.exist;
+      } finally {
+        console.error = consoleError;
       }
     });
   });
modifiedtests/src/substrate/substrate-api.tsdiffbeforeafterboth
before · tests/src/substrate/substrate-api.ts
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import { WsProvider, ApiPromise } from "@polkadot/api";7import { EventRecord } from '@polkadot/types/interfaces/system/types';8import { ExtrinsicStatus } from '@polkadot/types/interfaces/author/types';9import { IKeyringPair } from "@polkadot/types/types";1011import config from "../config";12import promisifySubstrate from "./promisify-substrate";13import { ApiOptions, SubmittableExtrinsic, ApiTypes } from "@polkadot/api/types";14import rtt from "../../../runtime_types.json";1516function defaultApiOptions(): ApiOptions {17  const wsProvider = new WsProvider(config.substrateUrl);18  return { provider: wsProvider, types: rtt };19}2021export default async function usingApi(action: (api: ApiPromise) => Promise<void>, settings: ApiOptions | undefined = undefined): Promise<void> {22  settings = settings || defaultApiOptions();23  let api: ApiPromise = new ApiPromise(settings);2425  // TODO: Remove, this is temporary: Filter unneeded API output 26  // (Jaco promised it will be removed in the next version)27  // const consoleLog = console.log;28  // console.log = (message: string) => {29  //   if (!(message.includes("API/INIT: Capabilities detected") || message.includes("2021-"))) {30  //     consoleLog(message);31  //   }32  // };3334  try {35    await promisifySubstrate(api, async () => {36      if(api) {37        await api.isReadyOrError;38        await action(api);39      }40    })();41  } finally {42    await api.disconnect();43    // console.log = consoleLog;44  }45}4647enum TransactionStatus {48  Success,49  Fail,50  NotReady51}5253function getTransactionStatus(events: EventRecord[], status: ExtrinsicStatus): TransactionStatus {54  if (status.isReady) {55    return TransactionStatus.NotReady;56  }57  if (status.isBroadcast) {58    return TransactionStatus.NotReady;59  } 60  if (status.isInBlock || status.isFinalized) {61    if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {62      return TransactionStatus.Fail;63    }64    if(events.filter(e => e.event.data.method === 'ExtrinsicSuccess').length > 0) {65      return TransactionStatus.Success;66    }67  }6869  return TransactionStatus.Fail;70}7172export function73submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {74  return new Promise(async (resolve, reject) => {75    try {76      await transaction.signAndSend(sender, ({ events = [], status }) => {77        const transactionStatus = getTransactionStatus(events, status);7879        if (transactionStatus === TransactionStatus.Success) {80          resolve(events);81        } else if (transactionStatus === TransactionStatus.Fail) {82          console.log(`Something went wrong with transaction. Status: ${status}`);83          reject(events);84        }85      });86    } catch (e) {87      console.log('Error: ', e);88      reject(e);89    }90  });91}9293export function submitTransactionExpectFailAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {94  const consoleError = console.error;95  const consoleLog = console.log;96  console.error = () => {};97  console.log = () => {};9899  return new Promise<EventRecord[]>(async function(res, rej) {100    const resolve = (rec: EventRecord[]) => {101      setTimeout(() => {102        res(rec);103        console.error = consoleError;104        console.log = consoleLog;105      });106    };107    const reject = (errror: any) => {108      setTimeout(() => {109        rej(errror);110        console.error = consoleError;111        console.log = consoleLog;112      });113    };114    try {115      await transaction.signAndSend(sender, ({ events = [], status }) => {116        const transactionStatus = getTransactionStatus(events, status);117118        console.log('transactionStatus', transactionStatus, 'events', events);119120        if (transactionStatus == TransactionStatus.Success) {121          resolve(events);122        } else if (transactionStatus == TransactionStatus.Fail) {123          reject(events);124        }125      });126    } catch (e) {127      reject(e);128    }129  });130}
after · tests/src/substrate/substrate-api.ts
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import { WsProvider, ApiPromise } from "@polkadot/api";7import { EventRecord } from '@polkadot/types/interfaces/system/types';8import { ExtrinsicStatus } from '@polkadot/types/interfaces/author/types';9import { IKeyringPair } from "@polkadot/types/types";1011import config from "../config";12import promisifySubstrate from "./promisify-substrate";13import { ApiOptions, SubmittableExtrinsic, ApiTypes } from "@polkadot/api/types";14import rtt from "../../../runtime_types.json";1516function defaultApiOptions(): ApiOptions {17  const wsProvider = new WsProvider(config.substrateUrl);18  return { provider: wsProvider, types: rtt };19}2021export default async function usingApi(action: (api: ApiPromise) => Promise<void>, settings: ApiOptions | undefined = undefined): Promise<void> {22  settings = settings || defaultApiOptions();23  let api: ApiPromise = new ApiPromise(settings);2425  // TODO: Remove, this is temporary: Filter unneeded API output 26  // (Jaco promised it will be removed in the next version)27  const consoleLog = console.log;28  console.log = (message: string) => {29    if (message.includes("API/INIT: Capabilities detected") || message.includes("2021-")) {}30    else if (message.includes("StorageChangeSet:: WebSocket is not connected") || message.includes("2021-")) {}31    else consoleLog(message);32  };33  const consoleErr = console.error;34  console.error = (message: string) => {35    if (message.includes("StorageChangeSet:: WebSocket is not connected") || message.includes("2021-")) {}36    else consoleErr(message);37  };3839  try {40    await promisifySubstrate(api, async () => {41      if(api) {42        await api.isReadyOrError;43        await action(api);44      }45    })();46  } finally {47    await api.disconnect();48    console.log = consoleLog;49    console.error = consoleErr;50  }51}5253enum TransactionStatus {54  Success,55  Fail,56  NotReady57}5859function getTransactionStatus(events: EventRecord[], status: ExtrinsicStatus): TransactionStatus {60  if (status.isReady) {61    return TransactionStatus.NotReady;62  }63  if (status.isBroadcast) {64    return TransactionStatus.NotReady;65  } 66  if (status.isInBlock || status.isFinalized) {67    if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {68      return TransactionStatus.Fail;69    }70    if(events.filter(e => e.event.data.method === 'ExtrinsicSuccess').length > 0) {71      return TransactionStatus.Success;72    }73  }7475  return TransactionStatus.Fail;76}7778export function79submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {80  return new Promise(async (resolve, reject) => {81    try {82      await transaction.signAndSend(sender, ({ events = [], status }) => {83        const transactionStatus = getTransactionStatus(events, status);8485        if (transactionStatus === TransactionStatus.Success) {86          resolve(events);87        } else if (transactionStatus === TransactionStatus.Fail) {88          console.log(`Something went wrong with transaction. Status: ${status}`);89          reject(events);90        }91      });92    } catch (e) {93      console.log('Error: ', e);94      reject(e);95    }96  });97}9899export function submitTransactionExpectFailAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {100  const consoleError = console.error;101  const consoleLog = console.log;102  console.error = () => {};103  console.log = () => {};104105  return new Promise<EventRecord[]>(async function(res, rej) {106    const resolve = (rec: EventRecord[]) => {107      setTimeout(() => {108        res(rec);109        console.error = consoleError;110        console.log = consoleLog;111      });112    };113    const reject = (errror: any) => {114      setTimeout(() => {115        rej(errror);116        console.error = consoleError;117        console.log = consoleLog;118      });119    };120    try {121      await transaction.signAndSend(sender, ({ events = [], status }) => {122        const transactionStatus = getTransactionStatus(events, status);123124        // console.log('transactionStatus', transactionStatus, 'events', events);125126        if (transactionStatus == TransactionStatus.Success) {127          resolve(events);128        } else if (transactionStatus == TransactionStatus.Fail) {129          reject(events);130        }131      });132    } catch (e) {133      reject(e);134    }135  });136}