123456import usingApi from './substrate/substrate-api';7import {expect} from 'chai';8import {ApiPromise} from '@polkadot/api';910const BLOCK_TIME_MS = 3000;11const TOLERANCE_MS = 1000;121314function getBlocks(api: ApiPromise): Promise<number[]> {15 return new Promise<number[]>(async (resolve, reject) => {16 const blockNumbers: number[] = [];17 setTimeout(() => reject('Block production test failed due to timeout.'), BLOCK_TIME_MS + TOLERANCE_MS);18 const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {19 blockNumbers.push(head.number.toNumber());20 if(blockNumbers.length >= 2) {21 unsubscribe();22 resolve(blockNumbers);23 }24 });25 });26}2728describe('Block Production smoke test', () => {29 it('Node produces new blocks', async () => {30 await usingApi(async (api) => {31 const blocks: number[] | undefined = await getBlocks(api);32 expect(blocks[0]).to.be.lessThan(blocks[1]);33 });34 });35});