diff --git a/packages/credential-sdk/src/modules/tests/offchain-signatures-module.js b/packages/credential-sdk/src/modules/tests/offchain-signatures-module.js index 3ce29cda6..cb77a82c6 100644 --- a/packages/credential-sdk/src/modules/tests/offchain-signatures-module.js +++ b/packages/credential-sdk/src/modules/tests/offchain-signatures-module.js @@ -29,7 +29,7 @@ export default function generateOffchainSignatureModuleTests( ) { const test = itIf(filter); - describe(`Using ${didModule.constructor.name} and ${offchainSignatures.constructor.name}`, () => { + describe(`Checks ${didModule.constructor.name} and ${offchainSignatures.constructor.name} with all public keys and params`, () => { test('Generates a `DIDDocument` with `OffchainPublicKey` and creates a `OffchainParameters` owned by this DID', async () => { const did = DID.random(); @@ -129,15 +129,54 @@ export default function generateOffchainSignatureModuleTests( }); }); - const modules = [bbs, bbsPlus, ps]; - const keysClasses = [BBSPublicKey, BBSPlusPublicKey, PSPublicKey]; - const paramsClasses = [BBSParams, BBSPlusParams, PSParams]; - for (let idx = 0; idx < keysClasses.length; idx++) { - const module = modules[idx]; - const PublicKey = keysClasses[idx]; - const Params = paramsClasses[idx]; + test('Returns `null` in case of missing params', async () => { + const did = DID.random(); + const keyPair = Ed25519Keypair.random(); + const didKeypair = new DidKeypair([did, 1], keyPair); + + const document = DIDDocument.create(did, [didKeypair.didKey()]); + + const psParamsId = await offchainSignatures.nextParamsId(did); + const psParamsRef = new OffchainSignaturesParamsRef(did, psParamsId); + + await didModule.createDocument(document, didKeypair); + const psKey = new PSPublicKey( + new PSPublicKeyValue(TypedBytes.random(1000), psParamsRef), + ); - test(`Checks ${module.constructor.name}`, async () => { + expect( + await offchainSignatures.getParams( + did, + await offchainSignatures.nextParamsId(did), + ), + ).toBe(null); + + await expect(() => psKey.withParams(offchainSignatures)).rejects.toThrow(); + }); + }); + + const cases = [ + { + module: bbs, + PublicKey: BBSPublicKey, + Params: BBSParams, + }, + { + module: bbsPlus, + PublicKey: BBSPlusPublicKey, + Params: BBSPlusParams, + }, + { + module: ps, + PublicKey: PSPublicKey, + Params: PSParams, + }, + ]; + + describe.each(cases)( + 'Checks basic workflow for each module', + ({ module, PublicKey, Params }) => { + test(`Generates a \`DIDDocument\` with \`OffchainPublicKey\` and creates a \`OffchainParameters\` owned by this DID using ${module.constructor.name} with ${PublicKey.name} and ${Params.name}`, async () => { const did = DID.random(); const keyPair = Ed25519Keypair.random(); @@ -156,6 +195,9 @@ export default function generateOffchainSignatureModuleTests( stringToU8a(module.constructor.name), ), ); + + expect(await module.getParams(did, id)).toEqual(null); + await module.addParams(id, params, did, didKeypair); const key = new PublicKey( @@ -177,31 +219,6 @@ export default function generateOffchainSignatureModuleTests( params.toJSON(), ); }); - } - - test('Returns `null` in case of missing params', async () => { - const did = DID.random(); - const keyPair = Ed25519Keypair.random(); - const didKeypair = new DidKeypair([did, 1], keyPair); - - const document = DIDDocument.create(did, [didKeypair.didKey()]); - - const psParamsId = await offchainSignatures.nextParamsId(did); - const psParamsRef = new OffchainSignaturesParamsRef(did, psParamsId); - - await didModule.createDocument(document, didKeypair); - const psKey = new PSPublicKey( - new PSPublicKeyValue(TypedBytes.random(1000), psParamsRef), - ); - - expect( - await offchainSignatures.getParams( - did, - await offchainSignatures.nextParamsId(did), - ), - ).toBe(null); - - await expect(() => psKey.withParams(offchainSignatures)).rejects.toThrow(); - }); - }); + }, + ); } diff --git a/packages/dock-blockchain-modules/tests/integration/modules/offchain-signatures-module.test.js b/packages/dock-blockchain-modules/tests/integration/modules/offchain-signatures-module.test.js index e2ed88cae..56b5dc419 100644 --- a/packages/dock-blockchain-modules/tests/integration/modules/offchain-signatures-module.test.js +++ b/packages/dock-blockchain-modules/tests/integration/modules/offchain-signatures-module.test.js @@ -4,7 +4,13 @@ import { MultiApiOffchainSignaturesModule, MultiApiDIDModule, } from "@docknetwork/credential-sdk/modules"; -import { DockDIDModule, DockOffchainSignaturesModule } from "../../../src"; +import { + DockDIDModule, + DockOffchainSignaturesModule, + DockBBSModule, + DockBBSPlusModule, + DockPSModule, +} from "../../../src"; import { FullNodeEndpoint, TestAccountURI, @@ -35,6 +41,9 @@ describe("BlobModule", () => { { did: new DockDIDModule(dock), offchainSignatures: new DockOffchainSignaturesModule(dock), + bbs: new DockBBSModule(dock), + bbsPlus: new DockBBSPlusModule(dock), + ps: new DockPSModule(dock), }, { DID: DockDid, @@ -48,6 +57,11 @@ describe("BlobModule", () => { offchainSignatures: new MultiApiOffchainSignaturesModule([ new DockOffchainSignaturesModule(dock), ]), + bbs: new MultiApiOffchainSignaturesModule([new DockBBSModule(dock)]), + bbsPlus: new MultiApiOffchainSignaturesModule([ + new DockBBSPlusModule(dock), + ]), + ps: new MultiApiOffchainSignaturesModule([new DockPSModule(dock)]), }, { DID: DockDid,