@@ -208,17 +208,31 @@ describe("Semaphore", () => {
208
208
describe ( "# verifyProof" , ( ) => {
209
209
const message = 2
210
210
const identity = new Identity ( "0" )
211
+ const groupOneMemberId = 6
211
212
212
213
const group = new Group ( )
214
+ const groupOneMember = new Group ( )
213
215
214
216
group . addMembers ( members )
217
+ groupOneMember . addMember ( members [ 0 ] )
215
218
216
219
let fullProof : SemaphoreProof
220
+ let fullProofOneMember : SemaphoreProof
217
221
218
222
before ( async ( ) => {
223
+ await semaphoreContract [ "createGroup(uint256,address)" ] ( groupOneMemberId , accounts [ 0 ] )
224
+
219
225
await semaphoreContract . addMembers ( groupId , [ members [ 1 ] , members [ 2 ] ] )
226
+ await semaphoreContract . addMember ( groupOneMemberId , members [ 0 ] )
220
227
221
228
fullProof = await generateProof ( identity , group , message , group . root as string , 10 )
229
+ fullProofOneMember = await generateProof (
230
+ identity ,
231
+ groupOneMember ,
232
+ message ,
233
+ groupOneMember . root as string ,
234
+ 10
235
+ )
222
236
} )
223
237
224
238
it ( "Should not verify a proof if the group does not exist" , async ( ) => {
@@ -249,7 +263,29 @@ describe("Semaphore", () => {
249
263
await expect ( transaction ) . to . be . revertedWithCustomError ( semaphoreContract , "Semaphore__InvalidProof" )
250
264
} )
251
265
252
- it ( "Should verify a proof for an onchain group correctly" , async ( ) => {
266
+ it ( "Should verify a proof for an onchain group with one member correctly" , async ( ) => {
267
+ const transaction = semaphoreContract . verifyProof (
268
+ groupOneMemberId ,
269
+ fullProofOneMember . merkleRoot ,
270
+ fullProofOneMember . nullifier ,
271
+ fullProofOneMember . message ,
272
+ fullProofOneMember . merkleRoot ,
273
+ fullProofOneMember . proof
274
+ )
275
+
276
+ await expect ( transaction )
277
+ . to . emit ( semaphoreContract , "ProofVerified" )
278
+ . withArgs (
279
+ groupOneMemberId ,
280
+ fullProofOneMember . merkleRoot ,
281
+ fullProofOneMember . nullifier ,
282
+ fullProofOneMember . message ,
283
+ fullProofOneMember . merkleRoot ,
284
+ fullProofOneMember . proof
285
+ )
286
+ } )
287
+
288
+ it ( "Should verify a proof for an onchain group with more than one member correctly" , async ( ) => {
253
289
const transaction = semaphoreContract . verifyProof (
254
290
groupId ,
255
291
fullProof . merkleRoot ,
0 commit comments