diff --git a/packages/vc-status-list-tests/__tests__/statuslist.test.ts b/packages/vc-status-list-tests/__tests__/statuslist.test.ts index 0ac707d4..6fd0acee 100644 --- a/packages/vc-status-list-tests/__tests__/statuslist.test.ts +++ b/packages/vc-status-list-tests/__tests__/statuslist.test.ts @@ -95,6 +95,7 @@ describe('Status list', () => { { agent }, ) expect(statusList.type).toBe(StatusListType.StatusList2021) + expect(statusList.statuslistContentType).toBe('application/vc+ld+json') expect(statusList.proofFormat).toBe('lds') expect(statusList.statusList2021?.indexingDirection).toBe('rightToLeft') @@ -107,6 +108,7 @@ describe('Status list', () => { statusListIndex: '2', }) expect(status).toBe(Status2021.Invalid) + expect(statusList.statuslistContentType).toBe('application/vc+ld+json') }) it('should create and update using JWT format', async () => { @@ -134,6 +136,8 @@ describe('Status list', () => { statusListIndex: '3', }) expect(status).toBe(Status2021.Invalid) + expect(statusList.type).toBe(StatusListType.StatusList2021) + expect(statusList.statuslistContentType).toBe('application/statuslist+jwt') }) }) @@ -163,6 +167,8 @@ describe('Status list', () => { statusListIndex: '4', }) expect(status).toBe(StatusOAuth.Invalid) + expect(statusList.type).toBe(StatusListType.OAuthStatusList) + expect(statusList.statuslistContentType).toBe('application/statuslist+jwt') }) it('should create and update using CBOR format', async () => { @@ -194,6 +200,7 @@ describe('Status list', () => { statusListIndex: '5', }) expect(status).toBe(StatusOAuth.Suspended) + expect(statusList.statuslistContentType).toBe('application/statuslist+cwt') }) it('should reject LD-Signatures format', async () => { @@ -251,6 +258,7 @@ describe('Status list', () => { ) expect(result.type).toBe(StatusListType.StatusList2021) + expect(result.statuslistContentType).toBe('application/statuslist+jwt') expect(result.encodedList).toBeDefined() expect(result.statusListCredential).toBeDefined() }) @@ -288,6 +296,7 @@ describe('Status list', () => { ) expect(result.type).toBe(StatusListType.OAuthStatusList) + expect(result.statuslistContentType).toBe('application/statuslist+jwt') expect(result.oauthStatusList?.bitsPerStatus).toBe(2) }) }) @@ -307,6 +316,7 @@ describe('Status list', () => { ) expect(result).toBeDefined() + expect(typeof result === 'string' || 'proof' in result).toBeTruthy() }) @@ -372,6 +382,7 @@ describe('Status list', () => { expect(details.correlationId).toBe('test-details-1') expect(details.driverType).toBe(StatusListDriverType.AGENT_TYPEORM) expect(details.statusList2021?.indexingDirection).toBe('rightToLeft') + expect(details.statuslistContentType).toBe('application/statuslist+jwt') }) it('should handle OAuthStatusList credential', async () => { @@ -399,6 +410,7 @@ describe('Status list', () => { expect(details.type).toBe(StatusListType.OAuthStatusList) expect(details.proofFormat).toBe('jwt') expect(details.correlationId).toBe('test-details-2') + expect(details.statuslistContentType).toBe('application/statuslist+jwt') expect(details.oauthStatusList?.bitsPerStatus).toBe(2) expect(details.oauthStatusList?.expiresAt).toEqual(new Date('2025-01-01')) }) @@ -428,6 +440,7 @@ describe('Status list', () => { expect(details.type).toBe(StatusListType.OAuthStatusList) expect(details.proofFormat).toBe('cbor') expect(details.correlationId).toBe('test-details-3') + expect(details.statuslistContentType).toBe('application/statuslist+cwt') expect(details.oauthStatusList?.bitsPerStatus).toBe(2) expect(details.oauthStatusList?.expiresAt).toEqual(new Date('2025-01-01')) }) diff --git a/packages/vc-status-list/src/impl/OAuthStatusList.ts b/packages/vc-status-list/src/impl/OAuthStatusList.ts index 7f3a0c20..034a15fe 100644 --- a/packages/vc-status-list/src/impl/OAuthStatusList.ts +++ b/packages/vc-status-list/src/impl/OAuthStatusList.ts @@ -51,7 +51,7 @@ export class OAuthStatusListImplementation implements IStatusList { id, correlationId, issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -92,7 +92,7 @@ export class OAuthStatusListImplementation implements IStatusList { proofFormat, id, issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -132,7 +132,7 @@ export class OAuthStatusListImplementation implements IStatusList { proofFormat: proofFormat ?? DEFAULT_PROOF_FORMAT, id, issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -171,7 +171,7 @@ export class OAuthStatusListImplementation implements IStatusList { proofFormat, length: statusList.statusList.length, statusListCredential: statusListPayload, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), oauthStatusList: { bitsPerStatus: statusList.getBitsPerStatus(), ...(exp && { expiresAt: new Date(exp * 1000) }), diff --git a/packages/vc-status-list/src/impl/StatusList2021.ts b/packages/vc-status-list/src/impl/StatusList2021.ts index 48e97822..73629057 100644 --- a/packages/vc-status-list/src/impl/StatusList2021.ts +++ b/packages/vc-status-list/src/impl/StatusList2021.ts @@ -57,7 +57,7 @@ export class StatusList2021Implementation implements IStatusList { id, correlationId, issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -100,7 +100,7 @@ export class StatusList2021Implementation implements IStatusList { proofFormat: proofFormat, id, issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -144,7 +144,7 @@ export class StatusList2021Implementation implements IStatusList { proofFormat: args.proofFormat ?? 'lds', id: id, issuer: issuer, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), } } @@ -177,7 +177,7 @@ export class StatusList2021Implementation implements IStatusList { proofFormat, length: list.length, statusListCredential: statusListPayload, - statuslistContentType: this.buildContentType(proofFormat), // TODO add to test + statuslistContentType: this.buildContentType(proofFormat), statusList2021: { indexingDirection: 'rightToLeft', statusPurpose,