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