123456import usingApi from './substrate/substrate-api';7import { expect } from 'chai';8import { ApiPromise } from '@polkadot/api';910const BlockTimeMs = 12000;11const ToleranceMs = 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.'), BlockTimeMs + ToleranceMs);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});