Skip to content

Commit a51123e

Browse files
committed
fix: add retry for registry list
1 parent 7faad76 commit a51123e

File tree

6 files changed

+105
-30
lines changed

6 files changed

+105
-30
lines changed

packages/signify-ts/test-integration/credentials.test.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
import { retry } from './utils/retry.ts';
1616
import { randomUUID } from 'node:crypto';
1717
import { step } from './utils/test-step.ts';
18-
import { CredentialResult } from '../src/keri/app/credentialing.ts';
1918
const { vleiServerUrl } = resolveEnvironment();
2019

2120
const QVI_SCHEMA_SAID = 'EBfdlu8R27Fbx-ehrqwImnK-8Cm79sqbAQ4MmvEAYqao';
@@ -112,7 +111,11 @@ test('single signature credentials', { timeout: 90000 }, async () => {
112111
.create({ name: issuerAid.name, registryName: registryName });
113112

114113
await waitOperation(issuerClient, await regResult.op());
115-
let registries = await issuerClient.registries().list(issuerAid.name);
114+
let registries = await retry(async () => {
115+
const result = await issuerClient.registries().list(issuerAid.name);
116+
assert(result.length >= 1, 'Expected at least one registry');
117+
return result;
118+
});
116119
const registry: { name: string; regk: string } = registries[0];
117120
assert.equal(registries.length, 1);
118121
assert.equal(registry.name, registryName);
@@ -121,7 +124,11 @@ test('single signature credentials', { timeout: 90000 }, async () => {
121124
.registries()
122125
.rename(issuerAid.name, registryName, updatedRegistryName);
123126

124-
registries = await issuerClient.registries().list(issuerAid.name);
127+
registries = await retry(async () => {
128+
const result = await issuerClient.registries().list(issuerAid.name);
129+
assert(result.length >= 1, 'Expected at least one registry');
130+
return result;
131+
});
125132
const updateRegistry: { name: string; regk: string } = registries[0];
126133
assert.equal(registries.length, 1);
127134
assert.equal(updateRegistry.name, updatedRegistryName);
@@ -499,11 +506,14 @@ test('single signature credentials', { timeout: 90000 }, async () => {
499506
.create({ name: holderAid.name, registryName: registryName });
500507

501508
await waitOperation(holderClient, await regResult.op());
502-
const registries = await holderClient
503-
.registries()
504-
.list(holderAid.name);
505-
assert(registries.length >= 1);
506-
return registries[0];
509+
return await retry(async () => {
510+
const registries = await holderClient
511+
.registries()
512+
.list(holderAid.name);
513+
514+
assert(registries.length >= 1);
515+
return registries[0];
516+
});
507517
}
508518
);
509519

packages/signify-ts/test-integration/multisig-holder.test.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
acceptMultisigIncept,
1414
startMultisigIncept,
1515
} from './utils/multisig-utils.ts';
16+
import { retry } from './utils/retry.ts';
1617

1718
const { vleiServerUrl } = resolveEnvironment();
1819
const WITNESS_AIDS = [
@@ -460,9 +461,12 @@ async function createRegistry(
460461
const op = await result.op();
461462
await waitOperation(client, op);
462463

463-
const registries = await client.registries().list(name);
464-
assert.equal(registries.length, 1);
465-
assert.equal(registries[0].name, registryName);
464+
const registries = await retry(async () => {
465+
const result = await client.registries().list(name);
466+
assert.equal(result.length, 1);
467+
assert.equal(result[0].name, registryName);
468+
return result;
469+
});
466470

467471
return registries[0];
468472
}

packages/signify-ts/test-integration/multisig-vlei-issuance.test.ts

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import {
3131
grantMultisig,
3232
issueCredentialMultisig,
3333
} from './utils/multisig-utils.ts';
34+
import { retry } from './utils/retry.ts';
35+
import { re } from 'mathjs';
3436

3537
const { vleiServerUrl, witnessIds } = resolveEnvironment();
3638

@@ -513,8 +515,20 @@ test('multisig-vlei-issuance', async function run() {
513515
await waitAndMarkNotification(clientGAR1, '/multisig/vcp');
514516

515517
[gedaRegistrybyGAR1, gedaRegistrybyGAR2] = await Promise.all([
516-
clientGAR1.registries().list(aidGEDA.name),
517-
clientGAR2.registries().list(aidGEDA.name),
518+
retry(async () => {
519+
const registries = await clientGAR1
520+
.registries()
521+
.list(aidGEDA.name);
522+
assert(registries.length > 0, 'Registry not found yet');
523+
return registries;
524+
}),
525+
retry(async () => {
526+
const registries = await clientGAR2
527+
.registries()
528+
.list(aidGEDA.name);
529+
assert(registries.length > 0, 'Registry not found yet');
530+
return registries;
531+
}),
518532
]);
519533
}
520534
assert.equal(gedaRegistrybyGAR1[0].regk, gedaRegistrybyGAR2[0].regk);
@@ -853,9 +867,27 @@ test('multisig-vlei-issuance', async function run() {
853867

854868
[qviRegistrybyQAR1, qviRegistrybyQAR2, qviRegistrybyQAR3] =
855869
await Promise.all([
856-
clientQAR1.registries().list(aidQVI.name),
857-
clientQAR2.registries().list(aidQVI.name),
858-
clientQAR3.registries().list(aidQVI.name),
870+
retry(async () => {
871+
const registries = await clientQAR1
872+
.registries()
873+
.list(aidQVI.name);
874+
assert(registries.length > 0, 'Registry not found yet');
875+
return registries;
876+
}),
877+
retry(async () => {
878+
const registries = await clientQAR2
879+
.registries()
880+
.list(aidQVI.name);
881+
assert(registries.length > 0, 'Registry not found yet');
882+
return registries;
883+
}),
884+
retry(async () => {
885+
const registries = await clientQAR3
886+
.registries()
887+
.list(aidQVI.name);
888+
assert(registries.length > 0, 'Registry not found yet');
889+
return registries;
890+
}),
859891
]);
860892
}
861893
assert.equal(qviRegistrybyQAR1[0].regk, qviRegistrybyQAR2[0].regk);
@@ -1103,9 +1135,27 @@ test('multisig-vlei-issuance', async function run() {
11031135

11041136
[leRegistrybyLAR1, leRegistrybyLAR2, leRegistrybyLAR3] =
11051137
await Promise.all([
1106-
clientLAR1.registries().list(aidLE.name),
1107-
clientLAR2.registries().list(aidLE.name),
1108-
clientLAR3.registries().list(aidLE.name),
1138+
retry(async () => {
1139+
const registries = await clientLAR1
1140+
.registries()
1141+
.list(aidLE.name);
1142+
assert(registries.length > 0, 'Registry not found yet');
1143+
return registries;
1144+
}),
1145+
retry(async () => {
1146+
const registries = await clientLAR2
1147+
.registries()
1148+
.list(aidLE.name);
1149+
assert(registries.length > 0, 'Registry not found yet');
1150+
return registries;
1151+
}),
1152+
retry(async () => {
1153+
const registries = await clientLAR3
1154+
.registries()
1155+
.list(aidLE.name);
1156+
assert(registries.length > 0, 'Registry not found yet');
1157+
return registries;
1158+
}),
11091159
]);
11101160
}
11111161
assert.equal(leRegistrybyLAR1[0].regk, leRegistrybyLAR2[0].regk);

packages/signify-ts/test-integration/multisig.test.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,15 @@ test('multisig', async function run() {
10771077

10781078
console.log('Member3 joined grant message, waiting for others to join...');
10791079

1080-
msgSaid = await waitAndMarkNotification(client4, '/exn/ipex/grant');
1080+
await Promise.all([
1081+
waitOperation(client1, op1),
1082+
waitOperation(client2, op2),
1083+
waitOperation(client3, op3),
1084+
]);
1085+
1086+
msgSaid = await waitAndMarkNotification(client4, '/exn/ipex/grant', {
1087+
timeout: 30000,
1088+
});
10811089
console.log('Holder received exchange message with the grant message');
10821090
res = await client4.exchanges().get(msgSaid);
10831091

@@ -1092,16 +1100,13 @@ test('multisig', async function run() {
10921100
.ipex()
10931101
.submitAdmit('holder', admit, asigs, aend, [m['prefix']]);
10941102

1095-
await Promise.all([
1096-
waitOperation(client1, op1),
1097-
waitOperation(client2, op2),
1098-
waitOperation(client3, op3),
1099-
waitOperation(client4, op4),
1100-
]);
1103+
await waitOperation(client4, op4);
11011104

11021105
console.log('Holder creates and sends admit message');
11031106

1104-
msgSaid = await waitAndMarkNotification(client1, '/exn/ipex/admit');
1107+
msgSaid = await waitAndMarkNotification(client1, '/exn/ipex/admit', {
1108+
timeout: 30000,
1109+
});
11051110
console.log('Member1 received exchange message with the admit response');
11061111
const creds = await client4.credentials().list();
11071112
console.log(`Holder holds ${creds.length} credential`);

packages/signify-ts/test-integration/singlesig-vlei-issuance.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,12 @@ async function getOrCreateRegistry(
487487
.registries()
488488
.create({ name: aid.name, registryName: registryName });
489489
await waitOperation(client, await regResult.op());
490-
registries = await client.registries().list(aid.name);
490+
491+
registries = await retry(async () => {
492+
const result = await client.registries().list(aid.name);
493+
assert(result.length >= 1, 'Expected at least one registry');
494+
return result;
495+
});
491496
}
492497
return registries[0];
493498
}

packages/signify-ts/test-integration/utils/test-util.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,9 +472,10 @@ export async function waitForCredential(
472472

473473
export async function waitAndMarkNotification(
474474
client: SignifyClient,
475-
route: string
475+
route: string,
476+
options: RetryOptions = {}
476477
) {
477-
const notes = await waitForNotifications(client, route);
478+
const notes = await waitForNotifications(client, route, options);
478479

479480
await Promise.all(
480481
notes.map(async (note) => {

0 commit comments

Comments
 (0)