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

Conformance Testing Results

Tests passed 101/117 86%

Tests failed 16/117 14%

Tests skipped 9

Total tests 126

These tests were run on

Key

The results of the tests are shown below:

Issue Credential - Data Integrity

Issuer ⇒
Test Name
API Catalog Danube Tech Digital Bazaar EWF GS1 US LearnCard Mavennet mesur.io SecureKey MATTR Transmute
MUST successfully issue a credential.
{
                      "name": "AssertionError",
                      "message": "Expected no error, got Bad Request: Your request body does not conform to the required schema: expected HTTPError: Bad Request: Your request body… { …(6) } to not exist",
                      "stack": "AssertionError: Expected no error, got Bad Request: Your request body does not conform to the required schema: expected HTTPError: Bad Request: Your request body… { …(6) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:42:9)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected credentialSubject to be an object.: expected 'did:key:z6MkhTNL7i2etLerDK8Acz5t528gi…' to be an object",
                      "stack": "AssertionError: Expected credentialSubject to be an object.: expected 'did:key:z6MkhTNL7i2etLerDK8Acz5t528gi…' to be an object\n    at _shouldHaveClaims (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:77:21)\n    at _shouldBeValidCredentialSubject (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:64:12)\n    at shouldBeIssuedVc (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:40:3)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:45:9)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
Request body MUST have property "credential".
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:56:9)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
credential MUST have property "@context".
credential "@context" MUST be an array.
credential "@context" items MUST be strings.
credential MUST have property "type"
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:99:9)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
"credential.type" MUST be an array.
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:109:9)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
"credential.type" items MUST be strings
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:121:11)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
credential MUST have property "issuer"
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:132:9)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
"credential.issuer" MUST be a string or an object
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:144:11)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:144:11)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:144:11)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
credential MUST have property "credentialSubject"
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:155:9)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
"credential.credentialSubject" MUST be an object
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:169:11)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected status code 400 invalid input!: expected 500 to equal 400",
                      "stack": "AssertionError: Expected status code 400 invalid input!: expected 500 to equal 400\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:14:23)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:169:11)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:169:11)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist",
                      "stack": "AssertionError: Expected no result from issuer.: expected Response{ size: +0, data: { …(7) }, …(2) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldThrowInvalidInput (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:9:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:169:11)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }
credential MAY have property "expirationDate"
{
                      "name": "AssertionError",
                      "message": "Expected no error, got Bad Request: Your request body does not conform to the required schema: expected HTTPError: Bad Request: Your request body… { …(6) } to not exist",
                      "stack": "AssertionError: Expected no error, got Bad Request: Your request body does not conform to the required schema: expected HTTPError: Bad Request: Your request body… { …(6) } to not exist\n    at Object.should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldReturnResult (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/assertions.js:19:14)\n    at Context. (file:///home/runner/work/vc-api-issuer-test-suite/vc-api-issuer-test-suite/tests/10-issuer.js:194:9)\n    at runMicrotasks ()\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
                    }

Issue Credential - JWT

Issuer ⇒
Test Name
API Catalog Danube Tech Digital Bazaar EWF GS1 US LearnCard MATTR Mavennet mesur.io SecureKey Transmute