This is a test suite to demonstrate interoperability of issuers using the VC HTTP API.

Conformance Testing Results

These tests were run on

Key

🚫
Pending
βœ“
Passed
❌
Failed
⊘
Access Denied
⏱
Timeout
β€”
Not Implemented

The results of the tests are shown below:

Issue Credential - Data Integrity

Issuer ⇒
Test Name
ACA-py apicatalog.com Danube Tech Digital Bazaar Digital Credentials Consortium EWF GS1 US Gen Digital LearnCard Mavennet OWF Procivis One Core SpruceID Trential Trinsic
MUST successfully issue a credential.
❌
Expected no error, got Unknown DID: did:key:z6Mkj8h3kzWZrPiucoyY9LGCTpXhCqBoX3doDmHz5MaPxnvi: expected HTTPError: Unknown DID: did:key:z6Mkj8h3k… { …(6) } to not exist
AssertionError: Expected no error, got Unknown DID: did:key:z6Mkj8h3kzWZrPiucoyY9LGCTpXhCqBoX3doDmHz5MaPxnvi: expected HTTPError: Unknown DID: did:key:z6Mkj8h3k… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:41:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected no error, got Request failed with status code 404 Not Found: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected no error, got Request failed with status code 404 Not Found: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:41:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:40:49)
βœ“
βœ“
❌
Expected no error, got credential.validFrom must be a valid ISO 8601 date string,credential.validFrom should not be empty: expected HTTPError { message: [ …(2) ], …(6) } to not exist
AssertionError: Expected no error, got credential.validFrom must be a valid ISO 8601 date string,credential.validFrom should not be empty: expected HTTPError { message: [ …(2) ], …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:41:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected no error, got Request to "https://w3c-test-suite.vc-api-owf.dev/v1/vc-api/credentials/issue" timed out.: expected TimeoutError: Request to "https://w3c-tes… { …(2) } to not exist
AssertionError: Expected no error, got Request to "https://w3c-test-suite.vc-api-owf.dev/v1/vc-api/credentials/issue" timed out.: expected TimeoutError: Request to "https://w3c-tes… { …(2) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:41:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected no error, got Request failed with status code 400 Bad Request: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected no error, got Request failed with status code 400 Bad Request: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:41:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
❌
Expected result to have data.: expected undefined to exist
AssertionError: Expected result to have data.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:42:16)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Request body MUST have property "credential".
❌
Expected status code 400 or 422.: expected 500 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 500 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:55:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:55:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:54:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:37 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '20', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=xUNtu5c%2FKCgEwg6iAIvGYYxnTwIsF5tnbrCqnskknts%2FbUYlfenNPhaWyXSCIrNic0SZT1bRYmDVAZ2%2Bvpz%2FiMUZU02IAKKrWtMHcG7PKoYAANx38qMDKspkcpVoxXnW%2BH0IXnu8IXAzvoW3a6Ul"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c66cae1c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1026&min_rtt=938&rtt_var=303&sent=9&recv=8&lost=0&retrans=0&sent_bytes=5705&recv_bytes=1914&delivery_rate=4705107&cwnd=255&unsent_bytes=0&cid=66c6544379da12a9&ts=181&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:37 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '20', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=xUNtu5c%2FKCgEwg6iAIvGYYxnTwIsF5tnbrCqnskknts%2FbUYlfenNPhaWyXSCIrNic0SZT1bRYmDVAZ2%2Bvpz%2FiMUZU02IAKKrWtMHcG7PKoYAANx38qMDKspkcpVoxXnW%2BH0IXnu8IXAzvoW3a6Ul"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c66cae1c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1026&min_rtt=938&rtt_var=303&sent=9&recv=8&lost=0&retrans=0&sent_bytes=5705&recv_bytes=1914&delivery_rate=4705107&cwnd=255&unsent_bytes=0&cid=66c6544379da12a9&ts=181&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:55:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential MUST have property "@context".
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:65:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:64:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '905', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=sg8CcCieW2V5g0GvnFVATTmJ1xonB4Re%2Bd1mBRsPGA0%2F02F7pKfEaphsvptgX1emBph63rfVleWsbV7I6qwFQrX7UlrRwi3JBXanlJuttmgg1GADv93N5%2B89yrnod6uVkrdJnyamU2x%2BoBNGIa6T"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c66fb6cc94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1393&min_rtt=938&rtt_var=890&sent=13&recv=10&lost=0&retrans=0&sent_bytes=8435&recv_bytes=2571&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1102&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '905', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=sg8CcCieW2V5g0GvnFVATTmJ1xonB4Re%2Bd1mBRsPGA0%2F02F7pKfEaphsvptgX1emBph63rfVleWsbV7I6qwFQrX7UlrRwi3JBXanlJuttmgg1GADv93N5%2B89yrnod6uVkrdJnyamU2x%2BoBNGIa6T"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c66fb6cc94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1393&min_rtt=938&rtt_var=890&sent=13&recv=10&lost=0&retrans=0&sent_bytes=8435&recv_bytes=2571&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1102&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:65:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential "@context" MUST be an array.
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:75:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:74:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '10', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=GjAYeWXnEm9CSmPq%2FhuQ7YZii7IdImjuv8%2BuDQv%2B8Wl3DVT7YErHgUHnWH1ONGAoRDXms%2BT0uuCGcbuw354%2F6dRgVDxTA94Y66KL%2FPh7O8wOKqv%2FTrIUIrF420OOZr%2Bbj1TgLRLFgQU9YioLZmXY"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6cc94ec94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1692&min_rtt=938&rtt_var=1220&sent=17&recv=12&lost=0&retrans=0&sent_bytes=11167&recv_bytes=3241&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1128&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '10', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=GjAYeWXnEm9CSmPq%2FhuQ7YZii7IdImjuv8%2BuDQv%2B8Wl3DVT7YErHgUHnWH1ONGAoRDXms%2BT0uuCGcbuw354%2F6dRgVDxTA94Y66KL%2FPh7O8wOKqv%2FTrIUIrF420OOZr%2Bbj1TgLRLFgQU9YioLZmXY"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6cc94ec94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1692&min_rtt=938&rtt_var=1220&sent=17&recv=12&lost=0&retrans=0&sent_bytes=11167&recv_bytes=3241&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1128&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:75:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential "@context" items MUST be strings.
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:87:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:86:35)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '10', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=tDQ%2FWSUxEyXZDj7q4f0fDrNJywbvbxHGuF4fTt0rQlyHpcnDw1%2BZ6vdqxo8lWWQS7PAIyEpRrYfW0u25qtuus6Dk0kBwc0xwybyJw8QLOs%2FzLUOxodynKnztEHTVlarQxrUNi0H8YoLRhkhmI6ij"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6ce9a2c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1794&min_rtt=938&rtt_var=1182&sent=20&recv=14&lost=0&retrans=0&sent_bytes=13908&recv_bytes=3922&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1152&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '10', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=tDQ%2FWSUxEyXZDj7q4f0fDrNJywbvbxHGuF4fTt0rQlyHpcnDw1%2BZ6vdqxo8lWWQS7PAIyEpRrYfW0u25qtuus6Dk0kBwc0xwybyJw8QLOs%2FzLUOxodynKnztEHTVlarQxrUNi0H8YoLRhkhmI6ij"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6ce9a2c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1794&min_rtt=938&rtt_var=1182&sent=20&recv=14&lost=0&retrans=0&sent_bytes=13908&recv_bytes=3922&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1152&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:87:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential MUST have property "type"
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:98:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:97:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=K43k8VDjOJiE9hWUfHLePkZz%2Bw0WpC7DI%2BXZGDr0sL72VEKTVaxDJzzm6DbHOLDG3Ktp99Kn1A4%2BRcSXvJJ98ZwwfViY%2Fjbi%2BcbnxVfeY9koINaUuACgx9NmxN35OnpsmtzThFTWlzQ%2Fp%2FUsY9T6"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d0a09c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1723&min_rtt=938&rtt_var=1030&sent=23&recv=16&lost=0&retrans=0&sent_bytes=16639&recv_bytes=4601&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1179&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=K43k8VDjOJiE9hWUfHLePkZz%2Bw0WpC7DI%2BXZGDr0sL72VEKTVaxDJzzm6DbHOLDG3Ktp99Kn1A4%2BRcSXvJJ98ZwwfViY%2Fjbi%2BcbnxVfeY9koINaUuACgx9NmxN35OnpsmtzThFTWlzQ%2Fp%2FUsY9T6"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d0a09c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1723&min_rtt=938&rtt_var=1030&sent=23&recv=16&lost=0&retrans=0&sent_bytes=16639&recv_bytes=4601&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1179&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:98:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
"credential.type" MUST be an array.
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:108:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:107:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '8', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=p8BTv83lyfXh0tltUCUf4rQd%2FcSz2bK4oe9SpRIr98IOhPj%2FWn3ZuwULbv8uRT4w%2B7%2B0wDsvbT66yDaDtCy3L1YWdLzvkyB8DR2tAvCBEUBtRjTAcR49A4rFrNf5e09ORwLQ4MDeFVgdoVgtCAmY"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d3a78c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1639&min_rtt=938&rtt_var=939&sent=26&recv=18&lost=0&retrans=0&sent_bytes=19377&recv_bytes=5289&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1201&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '8', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=p8BTv83lyfXh0tltUCUf4rQd%2FcSz2bK4oe9SpRIr98IOhPj%2FWn3ZuwULbv8uRT4w%2B7%2B0wDsvbT66yDaDtCy3L1YWdLzvkyB8DR2tAvCBEUBtRjTAcR49A4rFrNf5e09ORwLQ4MDeFVgdoVgtCAmY"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d3a78c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1639&min_rtt=938&rtt_var=939&sent=26&recv=18&lost=0&retrans=0&sent_bytes=19377&recv_bytes=5289&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1201&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:108:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
"credential.type" items MUST be strings
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:120:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:119:35)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=7RFUse1VqtcL85UyNLNV1k7GZ6Ko%2B0v1fkbL5vOUNAi02DqbszFZLNKVXOxtz%2BMZyAJx6HnRckHZ1hsowlU9KxZ7pYbZM7rHwsCOEtBvz4n0lMiCQLd0YVv7c0H2fcrHw4lPMLdYwo2YcB%2FPkWpN"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d5ad1c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1562&min_rtt=938&rtt_var=859&sent=29&recv=20&lost=0&retrans=0&sent_bytes=22108&recv_bytes=5980&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1224&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=7RFUse1VqtcL85UyNLNV1k7GZ6Ko%2B0v1fkbL5vOUNAi02DqbszFZLNKVXOxtz%2BMZyAJx6HnRckHZ1hsowlU9KxZ7pYbZM7rHwsCOEtBvz4n0lMiCQLd0YVv7c0H2fcrHw4lPMLdYwo2YcB%2FPkWpN"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d5ad1c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1562&min_rtt=938&rtt_var=859&sent=29&recv=20&lost=0&retrans=0&sent_bytes=22108&recv_bytes=5980&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1224&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:120:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential MUST have property "issuer"
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:131:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
❌
Expected no result from issuer.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0', vary: 'X-HTTP-Method-Override, Accept-Encoding', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', etag: 'W/"2eb-uZYNnmrzX4jMQVVs3xVW7Bv7rTU"', 'x-cloud-trace-context': '4014bedf69198f08d7dd4bceef741e24', date: 'Sun, 23 Mar 2025 05:09:54 GMT', server: 'Google Frontend', 'content-length': '747', via: '1.1 google', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0', vary: 'X-HTTP-Method-Override, Accept-Encoding', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', etag: 'W/"2eb-uZYNnmrzX4jMQVVs3xVW7Bv7rTU"', 'x-cloud-trace-context': '4014bedf69198f08d7dd4bceef741e24', date: 'Sun, 23 Mar 2025 05:09:54 GMT', server: 'Google Frontend', 'content-length': '747', via: '1.1 google', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:131:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:130:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=9vuzXg%2FXM4gBBByb4TW5UD9Ubhp%2F60mDSPv%2Fo0EPoPRZhnXEAeFr47M0VxAM7urBOG3JKImaLMTWATqBbZbYqQvgxuOD3KpFaB0pLtsSXIoh0Ud8ZidbUi8FgVOeCXjoqSXly7KYtN8bpHsuinvR"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d8b28c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1516&min_rtt=938&rtt_var=556&sent=34&recv=23&lost=0&retrans=0&sent_bytes=24893&recv_bytes=6623&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1251&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:38 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=9vuzXg%2FXM4gBBByb4TW5UD9Ubhp%2F60mDSPv%2Fo0EPoPRZhnXEAeFr47M0VxAM7urBOG3JKImaLMTWATqBbZbYqQvgxuOD3KpFaB0pLtsSXIoh0Ud8ZidbUi8FgVOeCXjoqSXly7KYtN8bpHsuinvR"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6d8b28c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1516&min_rtt=938&rtt_var=556&sent=34&recv=23&lost=0&retrans=0&sent_bytes=24893&recv_bytes=6623&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1251&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:131:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
"credential.issuer" MUST be a string or an object
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:143:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected status code 400 or 422.: expected 500 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 500 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:143:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected no result from issuer.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0', vary: 'X-HTTP-Method-Override, Accept-Encoding', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', etag: 'W/"2f3-0Za066hDRx550b4sxcNh4vNMi1E"', 'x-cloud-trace-context': 'fe25e566a36a4c4fd7dd4bceef7410ea', date: 'Sun, 23 Mar 2025 05:09:54 GMT', server: 'Google Frontend', 'content-length': '755', via: '1.1 google', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0', vary: 'X-HTTP-Method-Override, Accept-Encoding', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', etag: 'W/"2f3-0Za066hDRx550b4sxcNh4vNMi1E"', 'x-cloud-trace-context': 'fe25e566a36a4c4fd7dd4bceef7410ea', date: 'Sun, 23 Mar 2025 05:09:54 GMT', server: 'Google Frontend', 'content-length': '755', via: '1.1 google', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:143:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:142:35)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=KoOZ5eJNztaTf3%2BT6BcZpIy2sAoPyo9YIhk3HPF3M%2FnQ9bmGliCT1LmEKlkHGhfvnycjZpsIdbbNpBwQ244kFqpp8%2FltxUuJAidNqUanXovvG69tuoPkV0Getr05HPHIgakTUQ5p3s4Gc%2B95IdjK"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6dab85c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1451&min_rtt=938&rtt_var=547&sent=37&recv=25&lost=0&retrans=0&sent_bytes=27622&recv_bytes=7280&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1274&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=KoOZ5eJNztaTf3%2BT6BcZpIy2sAoPyo9YIhk3HPF3M%2FnQ9bmGliCT1LmEKlkHGhfvnycjZpsIdbbNpBwQ244kFqpp8%2FltxUuJAidNqUanXovvG69tuoPkV0Getr05HPHIgakTUQ5p3s4Gc%2B95IdjK"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6dab85c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1451&min_rtt=938&rtt_var=547&sent=37&recv=25&lost=0&retrans=0&sent_bytes=27622&recv_bytes=7280&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1274&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:143:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential MUST have property "credentialSubject"
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:154:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:153:33)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '11', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=RyTeIpij%2FBOSFMz5BljUz%2BzZZ%2FysWHxDVY98iQzumnZqTzT8eODUNNY1Ee3357UTIhcdiQ4GM8zgeidVOOMaXZ%2F3%2F8zUnY4sDD4SBk%2FsMgCdn7ItwTCp2L2HIl%2FU%2FbJAVr%2BOypGYQ95y9RdA0hBH"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6ddbe5c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1399&min_rtt=938&rtt_var=513&sent=40&recv=27&lost=0&retrans=0&sent_bytes=30353&recv_bytes=7905&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1306&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '11', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=RyTeIpij%2FBOSFMz5BljUz%2BzZZ%2FysWHxDVY98iQzumnZqTzT8eODUNNY1Ee3357UTIhcdiQ4GM8zgeidVOOMaXZ%2F3%2F8zUnY4sDD4SBk%2FsMgCdn7ItwTCp2L2HIl%2FU%2FbJAVr%2BOypGYQ95y9RdA0hBH"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6ddbe5c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1399&min_rtt=938&rtt_var=513&sent=40&recv=27&lost=0&retrans=0&sent_bytes=30353&recv_bytes=7905&delivery_rate=4705107&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1306&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:154:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
"credential.credentialSubject" MUST be an object
βœ“
❌
Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
AssertionError: Expected status code 400 or 422.: expected 404 to be one of [ 400, 422 ]
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:26)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:168:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:167:35)
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
βœ“
❌
Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=IUwK3M4a7OfWtQev9f2p0eh6%2Fw%2Br8afAKLaVe1wEItFsBs8JOUivKj2C%2FtFJ65eT%2FZR3GkJ%2BRyj8H21GL4VzU0WGcRPfFLuUtJygBdKzwpSQqlKUpFy%2FePQky1LX27wCQ90UuAfyvvH1qVIeBNgV"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6e0c57c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1357&min_rtt=938&rtt_var=470&sent=44&recv=29&lost=0&retrans=0&sent_bytes=33122&recv_bytes=8555&delivery_rate=5398865&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1331&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no result from issuer.: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 23 Mar 2025 05:10:39 GMT', 'content-type': 'text/html; charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cache-control': 'no-cache,no-store', expires: '-1', pragma: 'no-cache', 'x-envoy-upstream-service-time': '9', 'cf-cache-status': 'DYNAMIC', 'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=IUwK3M4a7OfWtQev9f2p0eh6%2Fw%2Br8afAKLaVe1wEItFsBs8JOUivKj2C%2FtFJ65eT%2FZR3GkJ%2BRyj8H21GL4VzU0WGcRPfFLuUtJygBdKzwpSQqlKUpFy%2FePQky1LX27wCQ90UuAfyvvH1qVIeBNgV"}],"group":"cf-nel","max_age":604800}', nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', server: 'cloudflare', 'cf-ray': '924b6c6e0c57c94a-IAD', 'content-encoding': 'br', 'server-timing': 'cfL4;desc="?proto=TCP&rtt=1357&min_rtt=938&rtt_var=470&sent=44&recv=29&lost=0&retrans=0&sent_bytes=33122&recv_bytes=8555&delivery_rate=5398865&cwnd=257&unsent_bytes=0&cid=66c6544379da12a9&ts=1331&x=0"', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:168:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
credential MAY have property "expirationDate"
❌
Expected no error, got Unknown DID: did:key:z6Mkj8h3kzWZrPiucoyY9LGCTpXhCqBoX3doDmHz5MaPxnvi: expected HTTPError: Unknown DID: did:key:z6Mkj8h3k… { …(6) } to not exist
AssertionError: Expected no error, got Unknown DID: did:key:z6Mkj8h3kzWZrPiucoyY9LGCTpXhCqBoX3doDmHz5MaPxnvi: expected HTTPError: Unknown DID: did:key:z6Mkj8h3k… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:193:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❌
Expected no error, got Request failed with status code 404 Not Found: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected no error, got Request failed with status code 404 Not Found: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:193:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
βœ“
βœ“
❌
Request failed with status code 401 Unauthorized
HTTPError: Request failed with status code 401 Unauthorized
                        at fn (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/ky/distribution/core/Ky.js:28:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async _handleResponse (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
                        at async _requestAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:97:41)
                        at async _getNewAccessToken (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:81:9)
                        at async constructOAuthHeader (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/oauth2.js:27:25)
                        at async makeHttpsRequest (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:46:29)
                        at async Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:192:33)
βœ“
βœ“
❌
Expected no error, got credential.validFrom must be a valid ISO 8601 date string,credential.validFrom should not be empty: expected HTTPError { message: [ …(2) ], …(6) } to not exist
AssertionError: Expected no error, got credential.validFrom must be a valid ISO 8601 date string,credential.validFrom should not be empty: expected HTTPError { message: [ …(2) ], …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:193:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
❌
Expected no error, got Request failed with status code 400 Bad Request: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected no error, got Request failed with status code 400 Bad Request: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:193:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
βœ“
βœ“
❌
Expected statusCode 201.: expected 200 to equal 201
AssertionError: Expected statusCode 201.: expected 200 to equal 201
                        at Context.<anonymous> (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:194:30)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Issue Credential - JWT

Issuer ⇒
Test Name
SpruceID Trential
MUST successfully issue a credential.
βœ“
βœ“
Request body MUST have property "credential".
βœ“
βœ“
credential MUST have property "@context".
βœ“
βœ“
credential "@context" MUST be an array.
βœ“
βœ“
credential "@context" items MUST be strings.
βœ“
βœ“
credential MUST have property "type"
βœ“
βœ“
"credential.type" MUST be an array.
βœ“
βœ“
"credential.type" items MUST be strings
βœ“
βœ“
credential MUST have property "issuer"
βœ“
βœ“
"credential.issuer" MUST be a string or an object
βœ“
βœ“
credential MUST have property "credentialSubject"
βœ“
βœ“
"credential.credentialSubject" MUST be an object
βœ“
βœ“
credential MAY have property "issuanceDate"
βœ“
βœ“
credential MAY have property "expirationDate"
βœ“
βœ“