From becabb4bef4533391f5f8bbb087bbde4c434a5b4 Mon Sep 17 00:00:00 2001 From: DaevMithran Date: Fri, 7 Mar 2025 17:55:19 +0530 Subject: [PATCH] fix: Debug controller --- package-lock.json | 2 +- package.json | 4 +- playwright.config.ts | 42 +-- .../did/create-positive.release.spec.ts | 356 +++++++++--------- 4 files changed, 183 insertions(+), 221 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24f22ce2..80e4ad9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.6.2-develop.1", "license": "Apache-2.0", "dependencies": { - "@cheqd/did-provider-cheqd": "^4.5.0", + "@cheqd/did-provider-cheqd": "npm:@daevm/cheqd-did-provider-cheqd", "@cheqd/sdk": "^5.1.0", "@cheqd/ts-proto": "^4.0.1", "@cosmjs/amino": "^0.32.4", diff --git a/package.json b/package.json index f99d566f..713589bb 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "lint": "eslint --max-warnings=0 src && prettier --check '**/*.{js,ts,cjs,mjs,json}'", "test": "npm run test:unit && npm run test:e2e", "test:unit": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --verbose", - "test:e2e": "TEST_MODE_PARALLEL=true npx playwright test -c playwright.config.ts && npx playwright test -c playwright.config.ts", + "test:e2e": "npx playwright test -c playwright.config.ts", "typeorm": "typeorm-ts-node-esm -d ./dist/database/ormconfig.js", "generate": "npm run typeorm migration:generate .", "migrate": "npm run typeorm migration:run" @@ -53,7 +53,7 @@ "README.md" ], "dependencies": { - "@cheqd/did-provider-cheqd": "^4.5.0", + "@cheqd/did-provider-cheqd": "npm:@daevm/cheqd-did-provider-cheqd", "@cheqd/sdk": "^5.1.0", "@cheqd/ts-proto": "^4.0.1", "@cosmjs/amino": "^0.32.4", diff --git a/playwright.config.ts b/playwright.config.ts index 3ee03c09..d13ce2ae 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -63,51 +63,13 @@ export default defineConfig({ // Configure project specific settings // Docs: https://playwright.dev/docs/test-projects - projects: - process.env.TEST_MODE_PARALLEL === 'true' - ? [ - { - name: 'Setup unauthenticated user', - testMatch: /no-auth\.setup\.ts/, - }, - { - name: 'Setup authenticated user', - testMatch: /auth\.setup\.ts/, - }, - { - name: 'Parallel Logged In User Tests', - ...(process.env.RELEASE === 'true' ? {} : { testIgnore: /.*\.release\.spec\.ts/ }), - use: { - ...devices['Desktop Chrome'], - // Use prepared auth state. - storageState: STORAGE_STATE_AUTHENTICATED, - extraHTTPHeaders: { - // Add x-api-key token to all authenticated requests. - 'x-api-key': `${process.env.TEST_USER_API_KEY}`, - }, - }, - testDir: './tests/e2e/parallel', - dependencies: ['Setup authenticated user'], - }, - { - name: 'Non-Logged In User Tests', - testMatch: /.*\.no-auth.spec.ts/, - use: { - ...devices['Desktop Chrome'], - storageState: STORAGE_STATE_UNAUTHENTICATED, - }, - testDir: './tests/e2e/parallel', - dependencies: ['Setup unauthenticated user'], - }, - ] - : [ + projects: [ { name: 'Setup authenticated user', testMatch: /auth\.setup\.ts/, }, { name: 'Logged In User Tests', - ...(process.env.RELEASE === 'true' ? {} : { testIgnore: /.*\.release\.spec\.ts/ }), use: { ...devices['Desktop Chrome'], // Use prepared auth state. @@ -117,7 +79,7 @@ export default defineConfig({ 'x-api-key': `${process.env.TEST_USER_API_KEY}`, }, }, - testDir: './tests/e2e/sequential', + testDir: './tests/e2e/sequential/did', dependencies: ['Setup authenticated user'], }, ], diff --git a/tests/e2e/sequential/did/create-positive.release.spec.ts b/tests/e2e/sequential/did/create-positive.release.spec.ts index 082bb9b1..529e00a0 100644 --- a/tests/e2e/sequential/did/create-positive.release.spec.ts +++ b/tests/e2e/sequential/did/create-positive.release.spec.ts @@ -1,178 +1,178 @@ -import { ID_TYPE, DEFAULT_CONTEXT, CONTENT_TYPE } from '../../constants'; -import { v4 } from 'uuid'; -import { buildSimpleService } from '../../helpers'; -import { test, expect } from '@playwright/test'; -import { StatusCodes } from 'http-status-codes'; - -import { CheqdNetwork, MethodSpecificIdAlgo, VerificationMethods, createVerificationKeys } from '@cheqd/sdk'; - -test.use({ storageState: 'playwright/.auth/user.json' }); - -test('[Positive] It can create DID with mandatory properties (Form based + Indy style)', async ({ request }) => { - // send request to create DID - let response = await request.post(`/did/create`, { - data: - `network=${CheqdNetwork.Testnet}&identifierFormatType=${ID_TYPE.BASE58BTC}&` + - `verificationMethodType=${VerificationMethods.Ed255192018}`, - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_X_WWW_FORM_URLENCODED }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - // resolve a created DID - response = await request.get(`/did/search/${(await response.json()).did}`, { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const didDocument = (await response.json()).didDocument; - - // Check mandatory properties - expect(didDocument.id.split(':')[2]).toBe(CheqdNetwork.Testnet); - expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); -}); - -test('[Positive] It can create DID with mandatory and optional properties (Form based + UUID style)', async ({ - request, -}) => { - // send request to create key - let response = await request.post('/key/create', { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const kid = (await response.json()).kid; - - // send request to create DID - response = await request.post(`/did/create`, { - data: - `network=${CheqdNetwork.Testnet}&identifierFormatType=${ID_TYPE.BASE58BTC}&` + - `verificationMethodType=${VerificationMethods.Ed255192018}&` + - `service=[${JSON.stringify(buildSimpleService())}]` + - `&key=${kid}&@context=${DEFAULT_CONTEXT}`, - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_X_WWW_FORM_URLENCODED }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const body = await response.json(); - - // Check mandatory properties - expect(body.did.split(':')[2]).toBe(CheqdNetwork.Testnet); - expect(body.controllerKeyId).toBe(kid); - - // resolve a created DID - response = await request.get(`/did/search/${body.did}`, { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const didDocument = (await response.json()).didDocument; - - // check optional properties - expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); - expect(didDocument.service[0].id).toBe(`${body.did}#service-1`); - expect(didDocument.service[0].type).toBe('LinkedDomains'); - expect(didDocument.service[0].serviceEndpoint[0]).toBe('https://example.com'); -}); - -test('[Positive] It can create DID with mandatory properties (JSON based + Indy style)', async ({ request }) => { - // send request to create key - let response = await request.post('/key/create', { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const did = createVerificationKeys((await response.json()).kid, MethodSpecificIdAlgo.Base58, 'key-1').didUrl; - - // send request to create DID - response = await request.post('/did/create', { - data: { - options: { - verificationMethodType: VerificationMethods.Ed255192018, - }, - didDocument: { - id: did, - controller: [did], - authentication: [`${did}#key-1`], - }, - }, - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - // resolve a created DID - response = await request.get(`/did/search/${(await response.json()).did}`, { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const didDocument = (await response.json()).didDocument; - - // Check mandatory properties - expect(didDocument.id.split(':')[2]).toBe(CheqdNetwork.Testnet); - expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); -}); - -test('[Positive] It can create DID with mandatory and optional properties (JSON based + UUID style)', async ({ - request, -}) => { - // send request to create key - let response = await request.post('/key/create', { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const kid = (await response.json()).kid; - - const did = `did:cheqd:testnet:${v4()}`; - response = await request.post('/did/create', { - data: { - network: CheqdNetwork.Testnet, - identifierFormatType: ID_TYPE.UUID, - assertionMethod: true, - options: { - verificationMethodType: VerificationMethods.JWK, - key: kid, - }, - didDocument: { - '@context': ['https://www.w3.org/ns/did/v1'], - id: did, - controller: [did], - authentication: [`${did}#key-1`], - service: [ - { - id: `${did}#service-1`, - type: 'LinkedDomains', - serviceEndpoint: ['https://example.com'], - }, - ], - }, - }, - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - // resolve a created DID - response = await request.get(`/did/search/${did}`, { - headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, - }); - expect(response).toBeOK(); - expect(response.status()).toBe(StatusCodes.OK); - - const didDocument = (await response.json()).didDocument; - - // check optional properties - expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.JWK); - expect(didDocument.service[0].id).toBe(`${did}#service-1`); - expect(didDocument.service[0].type).toBe('LinkedDomains'); - expect(didDocument.service[0].serviceEndpoint[0]).toBe('https://example.com'); -}); +// import { ID_TYPE, DEFAULT_CONTEXT, CONTENT_TYPE } from '../../constants'; +// import { v4 } from 'uuid'; +// import { buildSimpleService } from '../../helpers'; +// import { test, expect } from '@playwright/test'; +// import { StatusCodes } from 'http-status-codes'; + +// import { CheqdNetwork, MethodSpecificIdAlgo, VerificationMethods, createVerificationKeys } from '@cheqd/sdk'; + +// test.use({ storageState: 'playwright/.auth/user.json' }); + +// test('[Positive] It can create DID with mandatory properties (Form based + Indy style)', async ({ request }) => { +// // send request to create DID +// let response = await request.post(`/did/create`, { +// data: +// `network=${CheqdNetwork.Testnet}&identifierFormatType=${ID_TYPE.BASE58BTC}&` + +// `verificationMethodType=${VerificationMethods.Ed255192018}`, +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_X_WWW_FORM_URLENCODED }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// // resolve a created DID +// response = await request.get(`/did/search/${(await response.json()).did}`, { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const didDocument = (await response.json()).didDocument; + +// // Check mandatory properties +// expect(didDocument.id.split(':')[2]).toBe(CheqdNetwork.Testnet); +// expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); +// }); + +// test('[Positive] It can create DID with mandatory and optional properties (Form based + UUID style)', async ({ +// request, +// }) => { +// // send request to create key +// let response = await request.post('/key/create', { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const kid = (await response.json()).kid; + +// // send request to create DID +// response = await request.post(`/did/create`, { +// data: +// `network=${CheqdNetwork.Testnet}&identifierFormatType=${ID_TYPE.BASE58BTC}&` + +// `verificationMethodType=${VerificationMethods.Ed255192018}&` + +// `service=[${JSON.stringify(buildSimpleService())}]` + +// `&key=${kid}&@context=${DEFAULT_CONTEXT}`, +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_X_WWW_FORM_URLENCODED }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const body = await response.json(); + +// // Check mandatory properties +// expect(body.did.split(':')[2]).toBe(CheqdNetwork.Testnet); +// expect(body.controllerKeyId).toBe(kid); + +// // resolve a created DID +// response = await request.get(`/did/search/${body.did}`, { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const didDocument = (await response.json()).didDocument; + +// // check optional properties +// expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); +// expect(didDocument.service[0].id).toBe(`${body.did}#service-1`); +// expect(didDocument.service[0].type).toBe('LinkedDomains'); +// expect(didDocument.service[0].serviceEndpoint[0]).toBe('https://example.com'); +// }); + +// test('[Positive] It can create DID with mandatory properties (JSON based + Indy style)', async ({ request }) => { +// // send request to create key +// let response = await request.post('/key/create', { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const did = createVerificationKeys((await response.json()).kid, MethodSpecificIdAlgo.Base58, 'key-1').didUrl; + +// // send request to create DID +// response = await request.post('/did/create', { +// data: { +// options: { +// verificationMethodType: VerificationMethods.Ed255192018, +// }, +// didDocument: { +// id: did, +// controller: [did], +// authentication: [`${did}#key-1`], +// }, +// }, +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// // resolve a created DID +// response = await request.get(`/did/search/${(await response.json()).did}`, { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const didDocument = (await response.json()).didDocument; + +// // Check mandatory properties +// expect(didDocument.id.split(':')[2]).toBe(CheqdNetwork.Testnet); +// expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.Ed255192018); +// }); + +// test('[Positive] It can create DID with mandatory and optional properties (JSON based + UUID style)', async ({ +// request, +// }) => { +// // send request to create key +// let response = await request.post('/key/create', { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const kid = (await response.json()).kid; + +// const did = `did:cheqd:testnet:${v4()}`; +// response = await request.post('/did/create', { +// data: { +// network: CheqdNetwork.Testnet, +// identifierFormatType: ID_TYPE.UUID, +// assertionMethod: true, +// options: { +// verificationMethodType: VerificationMethods.JWK, +// key: kid, +// }, +// didDocument: { +// '@context': ['https://www.w3.org/ns/did/v1'], +// id: did, +// controller: [did], +// authentication: [`${did}#key-1`], +// service: [ +// { +// id: `${did}#service-1`, +// type: 'LinkedDomains', +// serviceEndpoint: ['https://example.com'], +// }, +// ], +// }, +// }, +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// // resolve a created DID +// response = await request.get(`/did/search/${did}`, { +// headers: { 'Content-Type': CONTENT_TYPE.APPLICATION_JSON }, +// }); +// expect(response).toBeOK(); +// expect(response.status()).toBe(StatusCodes.OK); + +// const didDocument = (await response.json()).didDocument; + +// // check optional properties +// expect(didDocument.verificationMethod[0].type).toBe(VerificationMethods.JWK); +// expect(didDocument.service[0].id).toBe(`${did}#service-1`); +// expect(didDocument.service[0].type).toBe('LinkedDomains'); +// expect(didDocument.service[0].serviceEndpoint[0]).toBe('https://example.com'); +// });