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.tsdiffbeforeafterbothno changes