difftreelog
Run block-production test in sequential suite
in: master
2 files changed
tests/src/block-production.seqtest.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/block-production.seqtest.ts
@@ -0,0 +1,43 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import {ApiPromise} from '@polkadot/api';
+import {expect, itSub} from './util';
+
+const BLOCK_TIME_MS = 12000;
+const TOLERANCE_MS = 3000;
+
+/* eslint no-async-promise-executor: "off" */
+function getBlocks(api: ApiPromise): Promise<number[]> {
+ return new Promise<number[]>(async (resolve, reject) => {
+ const blockNumbers: number[] = [];
+ setTimeout(() => reject('Block production test failed due to timeout.'), BLOCK_TIME_MS + TOLERANCE_MS);
+ const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {
+ blockNumbers.push(head.number.toNumber());
+ if(blockNumbers.length >= 2) {
+ unsubscribe();
+ resolve(blockNumbers);
+ }
+ });
+ });
+}
+
+describe('Block Production smoke test', () => {
+ itSub('Node produces new blocks', async ({helper}) => {
+ const blocks: number[] | undefined = await getBlocks(helper.getApi());
+ expect(blocks[0]).to.be.lessThan(blocks[1]);
+ });
+});
tests/src/block-production.test.tsdiffbeforeafterboth1// 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});