From 7f7ccfabff7f102d56a877a85721f656cfccc4ac Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 19 Apr 2020 16:01:47 +0200
Subject: [PATCH] [test] add a `willMembers` basic test

---
 test/will-members.ts | 55 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 test/will-members.ts

diff --git a/test/will-members.ts b/test/will-members.ts
new file mode 100644
index 0000000..e7f891b
--- /dev/null
+++ b/test/will-members.ts
@@ -0,0 +1,55 @@
+// Source file from duniter: Crypto-currency software to manage libre currency such as Ğ1
+// Copyright (C) 2018  Cedric Moreau <cem.moreau@gmail.com>
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+
+import {assertEqual, assertTrue, writeBasicTestWithConfAnd2Users} from "duniter/test/integration/tools/test-framework"
+import {CommonConstants} from "duniter/app/lib/common-libs/constants";
+import {DataFinder, initMonitDB} from "../lib/DataFinder";
+import {MonitDBBlock} from "../lib/SqliteBlockchain";
+import {willMembers} from "../modules/will-members";
+
+describe('willMembers', () => writeBasicTestWithConfAnd2Users({
+  sigQty: 1,
+  medianTimeBlocks: 1,
+}, (test) => {
+
+  const now = 1500000000
+
+  before(() => {
+    CommonConstants.BLOCKS_IN_MEMORY_MAX = 3 // Must be > forkWindowSize
+  })
+
+  test('Duniter blockchain init', async (s1, cat, tac) => {
+    await cat.createIdentity()
+    await tac.createIdentity()
+    await cat.cert(tac)
+    await tac.cert(cat)
+    await cat.join()
+    await tac.join()
+    const head = await s1.commit({ time: now })
+    assertEqual(head.number, 0);
+    assertEqual(head.membersCount, 2);
+    await initMonitDB(s1._server)
+  })
+
+  test('toc tries to join', async (s1, cat, tac, toc) => {
+    await toc.createIdentity()
+    await toc.join()
+    await cat.cert(toc)
+    await tac.cert(toc)
+    const will = await willMembers(s1._server)
+    assertEqual(will.idtysListOrdered.length, 1)
+    assertEqual(will.idtysListOrdered[0].pendingCertifications.length, 2) // cat & tac
+  })
+
+}))
+
-- 
GitLab