1234567891011121314151617import usingApi from './substrate/substrate-api';18import {expect} from 'chai';19import {ApiPromise} from '@polkadot/api';2021const BLOCK_TIME_MS = 12000;22const TOLERANCE_MS = 3000;232425function getBlocks(api: ApiPromise): Promise<number[]> {26 return new Promise<number[]>(async (resolve, reject) => {27 const blockNumbers: number[] = [];28 setTimeout(() => reject('Block production test failed due to timeout.'), BLOCK_TIME_MS + TOLERANCE_MS);29 const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {30 blockNumbers.push(head.number.toNumber());31 if(blockNumbers.length >= 2) {32 unsubscribe();33 resolve(blockNumbers);34 }35 });36 });37}3839describe('Block Production smoke test', () => {40 it('Node produces new blocks', async () => {41 await usingApi(async (api) => {42 const blocks: number[] | undefined = await getBlocks(api);43 expect(blocks[0]).to.be.lessThan(blocks[1]);44 });45 });46});