@@ -2,6 +2,9 @@ import { strict as assert } from 'assert';
2
2
import { Saider , Serder , SignifyClient } from 'signify-ts' ;
3
3
import { resolveEnvironment } from './utils/resolve-env' ;
4
4
import {
5
+ assertNotifications ,
6
+ assertOperations ,
7
+ markAndRemoveNotification ,
5
8
resolveOobi ,
6
9
waitForNotifications ,
7
10
waitOperation ,
@@ -75,6 +78,21 @@ beforeAll(async () => {
75
78
] ) ;
76
79
} ) ;
77
80
81
+ afterAll ( async ( ) => {
82
+ await assertOperations (
83
+ issuerClient ,
84
+ holderClient ,
85
+ verifierClient ,
86
+ legalEntityClient
87
+ ) ;
88
+ await assertNotifications (
89
+ issuerClient ,
90
+ holderClient ,
91
+ verifierClient ,
92
+ legalEntityClient
93
+ ) ;
94
+ } ) ;
95
+
78
96
test ( 'single signature credentials' , async ( ) => {
79
97
await step ( 'Resolve schema oobis' , async ( ) => {
80
98
await Promise . all ( [
@@ -211,11 +229,12 @@ test('single signature credentials', async () => {
211
229
datetime : dt ,
212
230
} ) ;
213
231
214
- await issuerClient
232
+ let op = await issuerClient
215
233
. ipex ( )
216
234
. submitGrant ( issuerAid . name , grant , gsigs , gend , [
217
235
holderAid . prefix ,
218
236
] ) ;
237
+ await waitOperation ( issuerClient , op ) ;
219
238
} ) ;
220
239
221
240
await step ( 'holder IPEX admit' , async ( ) => {
@@ -233,11 +252,20 @@ test('single signature credentials', async () => {
233
252
grantNotification . a . d ! ,
234
253
createTimestamp ( )
235
254
) ;
236
- await holderClient
255
+ let op = await holderClient
237
256
. ipex ( )
238
257
. submitAdmit ( holderAid . name , admit , sigs , aend , [ issuerAid . prefix ] ) ;
258
+ await waitOperation ( holderClient , op ) ;
239
259
240
- await holderClient . notifications ( ) . mark ( grantNotification . i ) ;
260
+ await markAndRemoveNotification ( holderClient , grantNotification ) ;
261
+ } ) ;
262
+
263
+ await step ( 'issuer IPEX grant response' , async ( ) => {
264
+ const issuerNotifications = await waitForNotifications (
265
+ issuerClient ,
266
+ '/exn/ipex/admit'
267
+ ) ;
268
+ await markAndRemoveNotification ( issuerClient , issuerNotifications [ 0 ] ) ;
241
269
} ) ;
242
270
243
271
await step ( 'holder has credential' , async ( ) => {
@@ -270,16 +298,13 @@ test('single signature credentials', async () => {
270
298
issAttachment : holderCredential . issAtc ,
271
299
datetime : createTimestamp ( ) ,
272
300
} ) ;
273
- await holderClient
274
- . exchanges ( )
275
- . sendFromEvents (
276
- holderAid . name ,
277
- 'presentation' ,
278
- grant2 ,
279
- gsigs2 ,
280
- gend2 ,
281
- [ verifierAid . prefix ]
282
- ) ;
301
+
302
+ let op = await holderClient
303
+ . ipex ( )
304
+ . submitGrant ( holderAid . name , grant2 , gsigs2 , gend2 , [
305
+ verifierAid . prefix ,
306
+ ] ) ;
307
+ await waitOperation ( holderClient , op ) ;
283
308
} ) ;
284
309
285
310
await step ( 'verifier receives IPEX grant' , async ( ) => {
@@ -299,13 +324,14 @@ test('single signature credentials', async () => {
299
324
createTimestamp ( )
300
325
) ;
301
326
302
- await verifierClient
327
+ let op = await verifierClient
303
328
. ipex ( )
304
329
. submitAdmit ( verifierAid . name , admit3 , sigs3 , aend3 , [
305
330
holderAid . prefix ,
306
331
] ) ;
332
+ await waitOperation ( verifierClient , op ) ;
307
333
308
- await verifierClient . notifications ( ) . mark ( verifierGrantNote . i ) ;
334
+ await markAndRemoveNotification ( verifierClient , verifierGrantNote ) ;
309
335
310
336
const verifierCredential = await retry ( async ( ) =>
311
337
verifierClient . credentials ( ) . get ( qviCredentialId )
@@ -316,6 +342,14 @@ test('single signature credentials', async () => {
316
342
assert . equal ( verifierCredential . status . s , '0' ) ; // 0 = issued
317
343
} ) ;
318
344
345
+ await step ( 'holder IPEX present response' , async ( ) => {
346
+ const holderNotifications = await waitForNotifications (
347
+ holderClient ,
348
+ '/exn/ipex/admit'
349
+ ) ;
350
+ await markAndRemoveNotification ( holderClient , holderNotifications [ 0 ] ) ;
351
+ } ) ;
352
+
319
353
const holderRegistry : { regk : string } = await step (
320
354
'holder create registry for LE credential' ,
321
355
async ( ) => {
@@ -388,11 +422,12 @@ test('single signature credentials', async () => {
388
422
datetime : dt ,
389
423
} ) ;
390
424
391
- await holderClient
425
+ let op = await holderClient
392
426
. ipex ( )
393
427
. submitGrant ( holderAid . name , grant , gsigs , gend , [
394
428
legalEntityAid . prefix ,
395
429
] ) ;
430
+ await waitOperation ( holderClient , op ) ;
396
431
} ) ;
397
432
398
433
await step ( 'Legal Entity IPEX admit' , async ( ) => {
@@ -411,13 +446,22 @@ test('single signature credentials', async () => {
411
446
createTimestamp ( )
412
447
) ;
413
448
414
- await legalEntityClient
449
+ let op = await legalEntityClient
415
450
. ipex ( )
416
451
. submitAdmit ( legalEntityAid . name , admit , sigs , aend , [
417
452
holderAid . prefix ,
418
453
] ) ;
454
+ await waitOperation ( legalEntityClient , op ) ;
419
455
420
- await legalEntityClient . notifications ( ) . mark ( grantNotification . i ) ;
456
+ await markAndRemoveNotification ( legalEntityClient , grantNotification ) ;
457
+ } ) ;
458
+
459
+ await step ( 'LE credential IPEX grant response' , async ( ) => {
460
+ const notifications = await waitForNotifications (
461
+ holderClient ,
462
+ '/exn/ipex/admit'
463
+ ) ;
464
+ await markAndRemoveNotification ( holderClient , notifications [ 0 ] ) ;
421
465
} ) ;
422
466
423
467
await step ( 'Legal Entity has chained credential' , async ( ) => {
0 commit comments