From c32280aafcdde212d10285e13ebc01a2a2acadb9 Mon Sep 17 00:00:00 2001 From: olegnn Date: Thu, 17 Oct 2024 23:16:46 +0200 Subject: [PATCH] Tweaks --- .../src/generate-tests/attest-module.js | 2 +- .../src/generate-tests/blob-module.js | 2 +- .../src/generate-tests/did-module.js | 3 +- .../src/types/did/onchain/typed-did/index.js | 6 ++++ .../src/types/generic/with-eq.js | 4 ++- .../src/types/generic/with-qualifier.js | 28 +++++++++++++------ .../tests/__snapshots__/document.test.js.snap | 2 +- .../credential-sdk/tests/document.test.js | 2 +- 8 files changed, 34 insertions(+), 15 deletions(-) diff --git a/packages/credential-sdk/src/generate-tests/attest-module.js b/packages/credential-sdk/src/generate-tests/attest-module.js index d9e9f2b01..b9080469b 100644 --- a/packages/credential-sdk/src/generate-tests/attest-module.js +++ b/packages/credential-sdk/src/generate-tests/attest-module.js @@ -10,7 +10,7 @@ export default function generateAttestModuleTests( ) { const test = itIf(filter); - test('Generates a `DIDDocument` and appends an attestation to it', async () => { + test('Generates a `DIDDocument` and appends an `Attest` to it', async () => { const did = DID.random(); const keyPair = Ed25519Keypair.random(); diff --git a/packages/credential-sdk/src/generate-tests/blob-module.js b/packages/credential-sdk/src/generate-tests/blob-module.js index b40f58d4e..5b2e72fb4 100644 --- a/packages/credential-sdk/src/generate-tests/blob-module.js +++ b/packages/credential-sdk/src/generate-tests/blob-module.js @@ -7,7 +7,7 @@ export default function generateBlobModuleTests( { did: didModule, blob: blobModule }, { DID, BlobId }, ) { - it('Generates a `DIDDocument` and creates a blob owned by this DID', async () => { + it('Generates a `DIDDocument` and creates a `Blob` owned by this DID', async () => { const did = DID.random(); const keyPair = Ed25519Keypair.random(); diff --git a/packages/credential-sdk/src/generate-tests/did-module.js b/packages/credential-sdk/src/generate-tests/did-module.js index d1c0c67b5..754737c14 100644 --- a/packages/credential-sdk/src/generate-tests/did-module.js +++ b/packages/credential-sdk/src/generate-tests/did-module.js @@ -54,7 +54,7 @@ export default function generateDIDModuleTests( expect((await module.getDocument(did)).toJSON()).toEqual(document.toJSON()); }); - test('Updates with `DIDDocument` containing BBS/BBSPlus/PS keys', async () => { + test('Updates `DIDDocument` containing BBS/BBSPlus/PS keys', async () => { const did = DID.random(); const keyPair = Ed25519Keypair.random(); @@ -105,7 +105,6 @@ export default function generateDIDModuleTests( service1, service2, }); - console.log(document.toJSON()); await module.createDocument(document, didKeypair); diff --git a/packages/credential-sdk/src/types/did/onchain/typed-did/index.js b/packages/credential-sdk/src/types/did/onchain/typed-did/index.js index 0468fd14d..127de52e7 100644 --- a/packages/credential-sdk/src/types/did/onchain/typed-did/index.js +++ b/packages/credential-sdk/src/types/did/onchain/typed-did/index.js @@ -154,16 +154,22 @@ export const NamespaceDid = withQualifier( ); class DockNamespaceDid extends NamespaceDid { + static Qualifier = 'did:dock:'; + static Type = 'dock'; static Class = DockDidValueToString; } class DidNamespaceKey extends NamespaceDid { + static Qualifier = 'did:key:'; + static Type = 'didMethodKey'; static Class = DidMethodKeyPublicKeyToString; } class CheqdNamespaceDid extends NamespaceDid { + static Qualifier = 'did:cheqd:'; + static Type = 'cheqd'; static Class = CheqdDid; diff --git a/packages/credential-sdk/src/types/generic/with-eq.js b/packages/credential-sdk/src/types/generic/with-eq.js index a9e1414e6..ca9db2137 100644 --- a/packages/credential-sdk/src/types/generic/with-eq.js +++ b/packages/credential-sdk/src/types/generic/with-eq.js @@ -17,7 +17,9 @@ export default function withEq(klass) { return false; } else if (Object.is(this, other)) { return true; - } else if (!isEqualToOrPrototypeOf(klass, other.constructor)) { + } else if ( + !isEqualToOrPrototypeOf(this.constructor, other.constructor) + ) { let compareWith; try { compareWith = this.constructor.from(other); diff --git a/packages/credential-sdk/src/types/generic/with-qualifier.js b/packages/credential-sdk/src/types/generic/with-qualifier.js index ad81b883d..b928a7db2 100644 --- a/packages/credential-sdk/src/types/generic/with-qualifier.js +++ b/packages/credential-sdk/src/types/generic/with-qualifier.js @@ -95,10 +95,6 @@ export default function withQualifier(klass, wrapper = false) { toString() { return this.value.toString(); } - - eq(other) { - return String(this) === String(other); - } }, }; @@ -109,6 +105,19 @@ export default function withQualifier(klass, wrapper = false) { } else { return this.fromQualifiedString(String(value)); } + } else if ( + value?.constructor?.Qualifier != null && + !this.Qualifiers.find((qualifier) => + value.constructor.Qualifier.startsWith(qualifier) + ) + ) { + throw new Error( + `Value has a different qualifier: \`${ + value.constructor.Qualifier + }\` while expected one of \`${fmtIter(this.Qualifiers)}\` by \`${ + this.name + }\`` + ); } else { return from(value); } @@ -169,10 +178,6 @@ export default function withQualifier(klass, wrapper = false) { toString() { return this.toQualifiedEncodedString(); } - - eq(other) { - return String(this) === String(other); - } }, }; @@ -191,6 +196,13 @@ export default function withQualifier(klass, wrapper = false) { } else { return this.fromUnqualifiedString(String(value)); } + } else if ( + value?.constructor?.Qualifier != null && + !value.constructor.Qualifier.startsWith(this.Qualifier) + ) { + throw new Error( + `Value has a different qualifier: \`${value.constructor.Qualifier}\` while expected \`${this.Qualifier}\` by \`${this.name}\`` + ); } else { return from(value); } diff --git a/packages/credential-sdk/tests/__snapshots__/document.test.js.snap b/packages/credential-sdk/tests/__snapshots__/document.test.js.snap index d0c4bd6d2..e3e8252fc 100644 --- a/packages/credential-sdk/tests/__snapshots__/document.test.js.snap +++ b/packages/credential-sdk/tests/__snapshots__/document.test.js.snap @@ -187,7 +187,7 @@ exports[`\`DIDDocument\` \`DIDDocument.create\` works 4`] = ` } `; -exports[`\`DIDDocument\` DIDDocument.from works 1`] = ` +exports[`\`DIDDocument\` \`DIDDocument.from\` works 1`] = ` { "@context": [ "test", diff --git a/packages/credential-sdk/tests/document.test.js b/packages/credential-sdk/tests/document.test.js index 29e5268be..0b25b05af 100644 --- a/packages/credential-sdk/tests/document.test.js +++ b/packages/credential-sdk/tests/document.test.js @@ -26,7 +26,7 @@ describe("`DIDDocument`", () => { const CAP_INV = new VerificationRelationship().setCapabilityInvocation(); const KEY_AGR = new VerificationRelationship().setKeyAgreement(); - test(`DIDDocument.from works`, () => { + test(`\`DIDDocument.from\` works`, () => { const doc = { "@context": ["test"], id: "did:dock:5DEHasvC9G3eVF3qCsN2VQvEbHYdQtsv74ozZ1ngQQj39Luk",