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

difftreelog

source

tests/src/block-production.seqtest.ts1.6 KiBsourcehistory
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {ApiPromise} from '@polkadot/api';18import {expect, itSub} from './util';1920const BLOCK_TIME_MS = 12000;21const TOLERANCE_MS = 3000;2223/* eslint no-async-promise-executor: "off" */24function getBlocks(api: ApiPromise): Promise<number[]> {25  return new Promise<number[]>(async (resolve, reject) => {26    const blockNumbers: number[] = [];27    setTimeout(() => reject('Block production test failed due to timeout.'), BLOCK_TIME_MS + TOLERANCE_MS);28    const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {29      blockNumbers.push(head.number.toNumber());30      if(blockNumbers.length >= 2) {31        unsubscribe();32        resolve(blockNumbers);33      }34    });35  });36}3738describe('Block Production smoke test', () => {39  itSub('Node produces new blocks', async ({helper}) => {40    const blocks: number[] | undefined = await getBlocks(helper.getApi());41    expect(blocks[0]).to.be.lessThan(blocks[1]);42  });43});