From c1dd0650c2ff3089c2da598668f350adf648a069 Mon Sep 17 00:00:00 2001 From: librelois <elois@ifee.fr> Date: Wed, 29 Apr 2020 19:33:24 +0200 Subject: [PATCH] [tests] reproduce bug #1402 --- .../coming-back-with-less-than-sigqty.ts | 19 ++++++++++++++----- test/integration/tools/TestUser.ts | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/test/integration/fork-resolution/coming-back-with-less-than-sigqty.ts b/test/integration/fork-resolution/coming-back-with-less-than-sigqty.ts index e89ba3637..63b1b2735 100644 --- a/test/integration/fork-resolution/coming-back-with-less-than-sigqty.ts +++ b/test/integration/fork-resolution/coming-back-with-less-than-sigqty.ts @@ -81,8 +81,17 @@ describe('A member coming back with less than `sigQty` valid certs total', () => await s1.commit({ time: now + 13 }) await s1.commit({ time: now + 13 }) const c1 = await cat.makeCert(toc) // <-- a renewal ==> this is what we want to observe - const join = await toc.makeMembership('IN') - // toc is **NOT** coming back! not enough certs + const join = await toc.makeMembership('IN'); + + // Inject c1 & join in mempool + await cat.sendCert(c1) + await toc.sendMembership(join) + + // Next bloc must NOT include toc join (#1402) + const b1 = s1.commit({ time: now + 13 }) + assertEqual((await b1).joiners.length, 0); + + // Try to force toc coming back, must be fail because toc not have enough certs (#1394) await assertThrows(s1.commit({ time: now + 13, joiners: [join], @@ -90,13 +99,13 @@ describe('A member coming back with less than `sigQty` valid certs total', () => }), 'BLOCK_WASNT_COMMITTED') // BUT is coming back with 1 more cert const c2 = await tac.makeCert(toc) - const b = await s1.commit({ + const b2 = await s1.commit({ time: now + 13, joiners: [join], certifications: [c1, c2] }) - assertEqual(b.membersCount, 3) // <--- toc is welcome back :) - assertEqual(b.number, 12) + assertEqual(b2.membersCount, 3) // <--- toc is welcome back :) + assertEqual(b2.number, 13) }) after(() => { diff --git a/test/integration/tools/TestUser.ts b/test/integration/tools/TestUser.ts index 375b7b107..86619853e 100644 --- a/test/integration/tools/TestUser.ts +++ b/test/integration/tools/TestUser.ts @@ -98,7 +98,7 @@ export class TestUser { return this.createdIdentity } - public async makeCert(user:TestUser, fromServer?:TestingServer, overrideProps?:any) { + public async makeCert(user:TestUser, fromServer?:TestingServer, overrideProps?:any): Promise<CertificationDTO> { const lookup = await this.lookup(user.pub, fromServer) const current = await this.node.server.BlockchainService.current() const idty = Underscore.filter(lookup.results[0].uids, uidEntry => uidEntry.uid === user.uid)[0] -- GitLab