diff --git a/index.html b/index.html index 4d376a9..b9dab93 100644 --- a/index.html +++ b/index.html @@ -185,13 +185,13 @@

Conformance Testing Results

- Tests passed 275/372 73% + Tests passed 232/372 62%

- Tests failed 97/372 27% + Tests failed 140/372 38%

- Failures 97 + Failures 140

Tests skipped 76 @@ -200,7 +200,7 @@

Conformance Testing Results

Total tests 448

- These tests were run on + These tests were run on

Key

@@ -300,9 +300,16 @@

Basic Conformance

- -
+ +
+
+ Expected OpSecId to have issued a VC.: expected undefined to exist +
AssertionError: Expected OpSecId to have issued a VC.: 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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:47:16)
+                        at process.processImmediate (node:internal/timers:483:21)
+
@@ -356,9 +363,16 @@

Basic Conformance

- -
+ +
+
+ Expected OpSecId to have issued a VC.: expected undefined to exist +
AssertionError: Expected OpSecId to have issued a VC.: 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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:54:16)
+                        at process.processImmediate (node:internal/timers:483:21)
+
@@ -405,9 +419,16 @@

Basic Conformance

- -
+ +
+
+ Expected OpSecId to have issued a VC.: expected undefined to exist +
AssertionError: Expected OpSecId to have issued a VC.: 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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:62:16)
+                        at process.processImmediate (node:internal/timers:483:21)
+
@@ -463,9 +484,17 @@

Basic Conformance

- -
+ +
+
+ Got unwanted rejection: Failed to verify credential. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to verify credential.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:70:9)
+
@@ -640,9 +669,19 @@

Contexts

- -
+ +
+
+ Request failed with status code 404 Not Found +
HTTPError: Request failed with status code 404 Not Found
+                        at fn (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
+                        at async makeHttpsRequest (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
+                        at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:71:27)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js:42:22)
+
@@ -690,9 +729,17 @@

Contexts

- -
+ +
+
+ Got unwanted rejection: verifier OpSecId rejected VP with valid @context. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: verifier OpSecId rejected VP with valid @context.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js:57:11)
+
@@ -766,9 +813,19 @@

Contexts

- -
+ +
+
+ Request failed with status code 404 Not Found +
HTTPError: Request failed with status code 404 Not Found
+                        at fn (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
+                        at async makeHttpsRequest (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
+                        at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:71:27)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js:71:20)
+
@@ -858,9 +915,17 @@

Contexts

- -
+ +
+
+ Got unwanted rejection: Failed to support multiple `@context` URLs. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to support multiple `@context` URLs.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js:111:9)
+
@@ -879,7 +944,7 @@

Contexts

- + Verifiable Presentation `@context`: "Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context." @@ -916,9 +981,17 @@

Contexts

- -
+ +
+
+ Got unwanted rejection: Failed to support multiple `@context` URLs in a VP. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to support multiple `@context` URLs in a VP.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js:132:9)
+
@@ -1024,9 +1097,17 @@

Identifiers

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a DID credentialSubject identifier. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a DID credentialSubject identifier.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js:34:9)
+
@@ -1186,8 +1267,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject a VC with an unmapped (via `@context`) type. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with an unmapped (via `@context`) type.
+                        Missing expected rejection: Failed to reject a VC with an unmapped (via `@context`) type.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with an unmapped (via `@context`) type.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:67:9)
@@ -1198,9 +1279,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with an additional type as a URL. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with an additional type as a URL.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:53:9)
+
@@ -1248,9 +1337,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with different type array ordering (VC type last). + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with different type array ordering (VC type last).
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:76:9)
+
@@ -1298,9 +1395,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with additional type. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with additional type.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:90:11)
+
@@ -1348,9 +1453,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept VP with `@context` mapped type. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept VP with `@context` mapped type.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:106:11)
+
@@ -1416,8 +1529,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject a VC with `credentialStatus` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with `credentialStatus` without a `type`.
+                        Missing expected rejection: Failed to reject a VC with `credentialStatus` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with `credentialStatus` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:123:11)
@@ -1428,9 +1541,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `credentialStatus` with a `type`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `credentialStatus` with a `type`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:120:11)
+
@@ -1472,8 +1593,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject a VC with `termsOfUse` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with `termsOfUse` without a `type`.
+                        Missing expected rejection: Failed to reject a VC with `termsOfUse` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with `termsOfUse` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:136:11)
@@ -1484,9 +1605,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `termsOfUse` with a `type`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `termsOfUse` with a `type`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:133:11)
+
@@ -1528,8 +1657,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject a VC with `evidence` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with `evidence` without a `type`.
+                        Missing expected rejection: Failed to reject a VC with `evidence` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with `evidence` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:149:11)
@@ -1540,9 +1669,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `evidence` with a `type`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `evidence` with a `type`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:146:11)
+
@@ -1584,8 +1721,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject a VC with `refreshService` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with `refreshService` without a `type`.
+                        Missing expected rejection: Failed to reject a VC with `refreshService` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with `refreshService` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:161:11)
@@ -1596,9 +1733,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `refreshService` with a `type`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `refreshService` with a `type`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:158:11)
+
@@ -1640,8 +1785,8 @@

Types

- Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without a `type`.
+                        Missing expected rejection: Failed to reject `credentialSchema` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject `credentialSchema` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:173:11)
@@ -1652,9 +1797,17 @@

Types

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `credentialSchema` with a `type`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `credentialSchema` with a `type`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js:170:11)
+
@@ -1744,9 +1897,17 @@

Names and Descriptions

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a `name` as a string. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a `name` as a string.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js:48:9)
+
@@ -1802,9 +1963,17 @@

Names and Descriptions

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `description` as a string. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `description` as a string.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js:73:9)
+
@@ -1860,9 +2029,17 @@

Names and Descriptions

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `issuer.name` as a string. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `issuer.name` as a string.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js:102:9)
+
@@ -1918,9 +2095,17 @@

Names and Descriptions

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `issuer.description` as a string. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `issuer.description` as a string.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js:128:9)
+
@@ -2004,9 +2189,19 @@

Issuer

- -
+ +
+
+ Request failed with status code 404 Not Found +
HTTPError: Request failed with status code 404 Not Found
+                        at fn (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-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-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/@digitalbazaar/http-client/lib/httpClient.js:101:16)
+                        at async makeHttpsRequest (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/node_modules/vc-test-suite-implementations/lib/requests.js:49:14)
+                        at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:71:27)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js:34:22)
+
@@ -2048,8 +2243,8 @@

Issuer

- Missing expected rejection (HTTPError): Failed to reject an issuer identifier that was not a URL. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject an issuer identifier that was not a URL.
+                        Missing expected rejection: Failed to reject an issuer identifier that was not a URL.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject an issuer identifier that was not a URL.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js:44:9)
@@ -2059,16 +2254,24 @@

Issuer

- Missing expected rejection (HTTPError): Failed to reject an issuer identifier that was not a URL. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject an issuer identifier that was not a URL.
+                        Missing expected rejection: Failed to reject an issuer identifier that was not a URL.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject an issuer identifier that was not a URL.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js:44:9)
- -
+ +
+
+ Got unwanted rejection. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js:42:9)
+
@@ -2186,8 +2389,8 @@

Credential Subject

- Missing expected rejection (HTTPError): Failed to reject a VC with an empty `credentialSubject`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with an empty `credentialSubject`.
+                        Missing expected rejection: Failed to reject a VC with an empty `credentialSubject`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with an empty `credentialSubject`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js:45:9)
@@ -2198,9 +2401,17 @@

Credential Subject

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with multiple `credentialSubject`s. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with multiple `credentialSubject`s.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js:49:9)
+
@@ -2282,9 +2493,17 @@

Validity Period

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a valid `validFrom` date-time. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a valid `validFrom` date-time.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js:37:9)
+
@@ -2340,9 +2559,17 @@

Validity Period

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a valid `validUntil` date-time. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a valid `validUntil` date-time.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js:57:9)
+
@@ -2391,9 +2618,18 @@

Validity Period

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a `validUntil` after its `validFrom`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a `validUntil` after its `validFrom`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async testTemporality (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/assertions.js:115:3)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js:76:9)
+
@@ -2442,9 +2678,18 @@

Validity Period

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a `validUntil` after its `validFrom`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a `validUntil` after its `validFrom`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async testTemporality (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/assertions.js:115:3)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js:82:9)
+
@@ -2569,8 +2814,8 @@

Status

- Missing expected rejection (HTTPError): Failed to reject a VC with a non-URL `credentialStatus.id`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a non-URL `credentialStatus.id`.
+                        Missing expected rejection: Failed to reject a VC with a non-URL `credentialStatus.id`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a non-URL `credentialStatus.id`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js:42:9)
@@ -2581,9 +2826,17 @@

Status

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with `credentialStatus` without an `id`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with `credentialStatus` without an `id`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js:35:9)
+
@@ -2625,8 +2878,8 @@

Status

- Missing expected rejection (HTTPError): Failed to reject a VC missing `credentialStatus.type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC missing `credentialStatus.type`.
+                        Missing expected rejection: Failed to reject a VC missing `credentialStatus.type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC missing `credentialStatus.type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js:52:9)
@@ -2637,9 +2890,17 @@

Status

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with a valid `credentialStatus`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a valid `credentialStatus`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js:60:9)
+
@@ -2770,9 +3031,17 @@

Data Schemas

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC containing a valid `credentialSchema`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC containing a valid `credentialSchema`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js:36:9)
+
@@ -2806,8 +3075,8 @@

Data Schemas

- Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without a `type`.
+                        Missing expected rejection: Failed to reject `credentialSchema` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject `credentialSchema` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js:48:9)
@@ -2817,8 +3086,8 @@

Data Schemas

- Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without an `id`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject `credentialSchema` without an `id`.
+                        Missing expected rejection: Failed to reject `credentialSchema` without an `id`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject `credentialSchema` without an `id`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js:52:9)
@@ -2874,9 +3143,17 @@

Data Schemas

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC containing multiple valid `credentialSchema`. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC containing multiple valid `credentialSchema`.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js:67:9)
+
@@ -2958,9 +3235,17 @@

Verifiable Presentations

- -
+ +
+
+ Got unwanted rejection: Expected verifier OpSecId to verify a VP with a valid id. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Expected verifier OpSecId to verify a VP with a valid id.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js:40:9)
+
@@ -3003,7 +3288,7 @@

Verifiable Presentations

- + The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed. @@ -3040,9 +3325,17 @@

Verifiable Presentations

- -
+ +
+
+ Got unwanted rejection: Expected verifier OpSecId to verify a VP with initial type VerifiablePresentation. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Expected verifier OpSecId to verify a VP with initial type VerifiablePresentation.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js:54:9)
+
@@ -3085,7 +3378,7 @@

Verifiable Presentations

- + The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs). @@ -3122,9 +3415,17 @@

Verifiable Presentations

- -
+ +
+
+ Got unwanted rejection: Failed to verify a valid VP. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to verify a valid VP.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js:71:9)
+
@@ -3364,9 +3665,17 @@

VP - Enveloped Verifiable Credentials

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VP containing a enveloped VC. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VP containing a enveloped VC.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js:65:11)
+
@@ -3760,8 +4069,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:66:9)
@@ -3772,9 +4081,17 @@

Advanced Concepts

- -
+ +
+
+ Got unwanted rejection: Failed to accept a VC with valid relatedResource objects. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with valid relatedResource objects.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:59:9)
+
@@ -3786,8 +4103,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:66:9)
@@ -3797,8 +4114,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource as an array of strings.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource as an array of strings.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:66:9)
@@ -3820,8 +4137,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:76:9)
@@ -3831,8 +4148,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:76:9)
@@ -3852,8 +4169,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:76:9)
@@ -3863,8 +4180,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no `id` field.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no `id` field.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:76:9)
@@ -3886,8 +4203,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:85:9)
@@ -3897,8 +4214,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:85:9)
@@ -3918,8 +4235,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:85:9)
@@ -3929,8 +4246,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with a relatedResource with no digest info.
+                        Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a relatedResource with no digest info.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:85:9)
@@ -3966,9 +4283,17 @@

Advanced Concepts

- -
+ +
+
+ Got unwanted rejection. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:103:9)
+
@@ -4002,8 +4327,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError): Failed to reject a VC with `refreshService` without a `type`. -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError): Failed to reject a VC with `refreshService` without a `type`.
+                        Missing expected rejection: Failed to reject a VC with `refreshService` without a `type`.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with `refreshService` without a `type`.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:114:11)
@@ -4064,9 +4389,17 @@

Advanced Concepts

- -
+ +
+
+ Got unwanted rejection. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:127:9)
+
@@ -4100,7 +4433,7 @@

Advanced Concepts

AssertionError [ERR_ASSERTION]: Got unwanted rejection.
                     Actual message: "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr"
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
-                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:136:9)
+ at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:135:9)
@@ -4108,8 +4441,8 @@

Advanced Concepts

- Missing expected rejection (HTTPError). -
AssertionError [ERR_ASSERTION]: Missing expected rejection (HTTPError).
+                        Missing expected rejection.
+                        
AssertionError [ERR_ASSERTION]: Missing expected rejection.
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                         at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:133:9)
@@ -4120,9 +4453,17 @@

Advanced Concepts

- -
+ +
+
+ Got unwanted rejection. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:135:9)
+
@@ -4156,7 +4497,7 @@

Advanced Concepts

AssertionError [ERR_ASSERTION]: Got unwanted rejection.
                     Actual message: "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr"
                         at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
-                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:147:9)
+ at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:146:9)
@@ -4170,9 +4511,17 @@

Advanced Concepts

- -
+ +
+
+ Got unwanted rejection. + Actual message: "Request failed with status code 404 Not Found" +
AssertionError [ERR_ASSERTION]: Got unwanted rejection.
+                    Actual message: "Request failed with status code 404 Not Found"
+                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js:146:9)
+
@@ -4268,6 +4617,42 @@

At Risk

At least 2 passing implementations + + + + Verifiable Presentation `@context`: "Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context." + + + +
+
+
+ + + + + + The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed. + + + +
+
+
+ + + + + + The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs). + + + +
+
+
+ + diff --git a/index.json b/index.json index b709c63..185451b 100644 --- a/index.json +++ b/index.json @@ -22,9 +22,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:428011fa-fe45-4ce3-aaa0-cf9618fc36a2", + "_testId": "urn:uuid:395d5bd3-f74b-4200-abf9-c1a78fb91729", "cell": { "columnId": "ACA-py", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -36,7 +36,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 586, + "_idleStart": 675, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -63,9 +63,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:068e0cb4-ab6d-41dc-bfaf-b3e586e42e1d", + "_testId": "urn:uuid:f019c6b5-b5fa-467f-8f8c-0a67ad7e0e3b", "cell": { "columnId": "ACA-py", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -77,12 +77,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 588, + "_idleStart": 677, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "failed", "err": { "name": "AssertionError", @@ -104,9 +104,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:37cdcdb4-7ea7-4ee9-826e-4cb985ffdc12", + "_testId": "urn:uuid:b00ca27a-a47b-4d2c-8909-849d222c3601", "cell": { "columnId": "ACA-py", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -118,7 +118,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 588, + "_idleStart": 677, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -145,9 +145,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:2d13c336-e7c4-42c5-a8fb-7cd0f9783921", + "_testId": "urn:uuid:10296932-f835-47d9-a3e1-42d75c253a0c", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -159,12 +159,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 589, + "_idleStart": 678, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -272,9 +272,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:a3f38868-382d-4228-b1be-2aa7691c924e", + "_testId": "urn:uuid:902da8f7-3a09-4b90-8b49-6315fc80cbe7", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -287,12 +287,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 618, + "_idleStart": 707, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "Tested by other tests in this suite." @@ -301,7 +301,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -311,9 +311,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:03a68757-6f15-4eb9-9e6b-53f5c0874be4", + "_testId": "urn:uuid:1a69db90-37e2-44e3-82fa-2031ce3615b1", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -325,12 +325,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 618, + "_idleStart": 707, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 136, + "duration": 211, "state": "passed", "speed": "slow" } @@ -351,7 +351,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -374,7 +374,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -384,12 +384,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 371, + "_idleStart": 369, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 214, + "duration": 304, "_error": null } ], @@ -401,9 +401,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:b558fe8a-a539-4ef5-a9f9-6110dbac6d84" + "_testId": "urn:uuid:c2061e69-e007-4e7c-9e23-72a9b5c75195" }, { "title": "apicatalog.com", @@ -423,9 +423,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:b60732a6-9869-4b7c-89ff-5fb60393a213", + "_testId": "urn:uuid:7aabcd8f-c89d-4b82-90f3-0f8c75194a81", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -437,12 +437,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1676, + "_idleStart": 1686, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -459,9 +459,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:dca0d4c9-7db6-42c7-aedb-571669f0ed6f", + "_testId": "urn:uuid:cc96f1d2-2fbc-4df5-91ab-39e343fbf264", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -473,12 +473,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1676, + "_idleStart": 1686, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "failed", "err": {} }, @@ -495,9 +495,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:e39af555-8d40-4f5e-a945-898f64b17d51", + "_testId": "urn:uuid:ca80a0e7-63b9-4680-9870-3a09439d56fe", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -509,7 +509,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1677, + "_idleStart": 1687, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -531,9 +531,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:4122833f-eac4-42fe-9751-a4ab10d76364", + "_testId": "urn:uuid:6c6b721e-ac4d-4c92-b2cc-0843b90aa790", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -545,12 +545,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1678, + "_idleStart": 1688, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 199, + "duration": 98, "state": "failed", "err": { "generatedMessage": false, @@ -561,7 +561,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"VerifiableCredential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-10-13T05:06:26Z\",\"proofValue\":\"z3CPA1ACYfSgFxdwsNm4kwev1CJJvGTEj9jvS4xBinCA4bxx1vnkgwB6Y4Nr1WXQ1Gew8MQaXpnzsdPxuPfPpGxyQ\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"VerifiableCredential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-10-20T05:05:46Z\",\"proofValue\":\"z2Zs15q8TQsQZk4Lcwp7iaeWa1YAUF4umhaf87Jy2Nw44yLoY47taqLj23kDfDz481eSkjzzGZ7uwjdgzT5RBaajU\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -578,8 +578,8 @@ "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "created": "2024-10-13T05:06:26Z", - "proofValue": "z3CPA1ACYfSgFxdwsNm4kwev1CJJvGTEj9jvS4xBinCA4bxx1vnkgwB6Y4Nr1WXQ1Gew8MQaXpnzsdPxuPfPpGxyQ" + "created": "2024-10-20T05:05:46Z", + "proofValue": "z2Zs15q8TQsQZk4Lcwp7iaeWa1YAUF4umhaf87Jy2Nw44yLoY47taqLj23kDfDz481eSkjzzGZ7uwjdgzT5RBaajU" } }, "options": { @@ -681,9 +681,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:9ced1756-e0d7-4af0-8216-837c390e853d", + "_testId": "urn:uuid:95553223-94e6-429a-99cf-5da8c5cafd08", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -696,7 +696,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1876, + "_idleStart": 1786, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -710,7 +710,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -720,9 +720,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:f73e9e77-6deb-4706-887f-978251c4da94", + "_testId": "urn:uuid:74dca51a-1480-49ea-a6d6-d370a882d8df", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -734,12 +734,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1877, + "_idleStart": 1786, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 297, + "duration": 197, "state": "passed", "speed": "slow" } @@ -760,7 +760,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -783,7 +783,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -793,12 +793,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 755, + "_idleStart": 918, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 919, + "duration": 767, "_error": null } ], @@ -810,9 +810,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:e3dc5500-5149-45d4-885f-49d733de8621" + "_testId": "urn:uuid:f7ccd182-95aa-490f-ba36-19214d59f462" }, { "title": "Digital Bazaar", @@ -832,9 +832,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:25a5ad18-2453-4d5d-9fac-85ed6fea231a", + "_testId": "urn:uuid:914ff5f2-f455-4624-bbe8-b58ef212c71b", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -846,12 +846,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2545, + "_idleStart": 2825, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -868,9 +868,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:31832308-1d15-46d9-9535-b58a3a83953c", + "_testId": "urn:uuid:7d0e7680-77d2-4b8c-8dc8-6fe5cb63f2de", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -882,7 +882,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2545, + "_idleStart": 2825, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -904,9 +904,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:04f95a5f-8a9c-4a81-9031-92263c8bfad0", + "_testId": "urn:uuid:5be6b336-db19-4c40-b300-a31f1d2a81b8", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -918,12 +918,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2546, + "_idleStart": 2826, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -940,9 +940,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:2b147665-13f3-494f-980c-3d2549800aae", + "_testId": "urn:uuid:4e96b694-c6f1-4a5c-81b9-3150e99919cb", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -954,12 +954,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2546, + "_idleStart": 2826, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 200, + "duration": 174, "state": "passed", "speed": "slow" }, @@ -976,9 +976,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:80e668cb-6170-4f1d-bcf3-2916c45ede9f", + "_testId": "urn:uuid:ce8f607d-9c1a-436f-b84a-3f0218807fd1", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -991,7 +991,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2745, + "_idleStart": 3001, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1005,7 +1005,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1015,9 +1015,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:1c781c34-9c81-4d5f-96a0-de14f9e8c977", + "_testId": "urn:uuid:d1b60f79-6a0b-4f3f-acac-016e9a10c817", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -1029,12 +1029,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2746, + "_idleStart": 3001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 104, "state": "passed", "speed": "slow" } @@ -1055,7 +1055,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1078,7 +1078,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -1088,12 +1088,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2174, + "_idleStart": 1984, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 371, + "duration": 840, "_error": null } ], @@ -1105,9 +1105,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:115cfc2c-932d-4462-a442-9ca22cdcb0a2" + "_testId": "urn:uuid:1c35cdb4-453d-4759-b246-b5a46f29b6da" }, { "title": "OpSecId", @@ -1127,9 +1127,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:36a6b14b-637f-46e6-9d9d-c79fa5a4d43d", + "_testId": "urn:uuid:926d401f-f3b1-44da-bfaa-152af9402c1f", "cell": { "columnId": "OpSecId", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -1141,14 +1141,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3067, + "_idleStart": 3344, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 1, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:47:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -1163,9 +1168,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:94314dd2-064c-45e0-b5a7-47fc17a2b1b1", + "_testId": "urn:uuid:d3972900-c24b-4c17-8cf4-d8e86b61af63", "cell": { "columnId": "OpSecId", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -1177,14 +1182,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3067, + "_idleStart": 3344, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:54:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -1199,9 +1209,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:19d6cc78-c8c8-4e0a-9f18-43920b52909e", + "_testId": "urn:uuid:f3851db8-5d2f-4c6f-93dd-2be2b517398d", "cell": { "columnId": "OpSecId", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -1213,14 +1223,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3068, + "_idleStart": 3345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:62:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -1235,9 +1250,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:5ecb1f03-4407-47ab-bd20-969a9f2f17ba", + "_testId": "urn:uuid:5963b1c9-aa93-4b14-934b-5b0f58413ffa", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -1249,14 +1264,102 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3068, + "_idleStart": 3345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, - "state": "passed", - "speed": "medium" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -1271,9 +1374,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:66d01777-5b8f-49ec-8d2f-7768fc32a9da", + "_testId": "urn:uuid:1cdd6744-f604-44f2-84eb-f2931b3e0d13", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -1286,7 +1389,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3140, + "_idleStart": 3371, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1300,7 +1403,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1310,9 +1413,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:c6ca56ce-a3ca-44e8-9068-f334d17e7e3b", + "_testId": "urn:uuid:3ba97e8e-0177-4a68-bb4e-b57f07951d1f", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -1324,12 +1427,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3140, + "_idleStart": 3371, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 175, + "duration": 105, "state": "passed", "speed": "slow" } @@ -1350,7 +1453,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1373,7 +1476,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -1383,12 +1486,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2841, + "_idleStart": 3106, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 225, + "duration": 237, "_error": null } ], @@ -1400,9 +1503,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:847fba68-260e-4778-a3b2-10739d5e5415" + "_testId": "urn:uuid:01d6687e-9c20-49b7-a3ab-615c5c405257" }, { "title": "Procivis One Core", @@ -1422,9 +1525,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:8e095a97-9258-4af2-a83f-2e15585cc55c", + "_testId": "urn:uuid:a5843549-c7fb-419e-9363-085f5a1150d7", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -1436,7 +1539,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3728, + "_idleStart": 3916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1458,9 +1561,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:0cd52c23-3bf9-40d4-9f51-bc3e3ea87b00", + "_testId": "urn:uuid:907934d5-93a1-4457-a1d4-8a671ac7bfed", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -1472,12 +1575,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -1494,9 +1597,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:b70ca14c-e371-412e-9c81-29683c79a3c7", + "_testId": "urn:uuid:45f37201-e9f1-4d64-a5bd-6f3ec11e4695", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -1508,7 +1611,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1530,9 +1633,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:9cfe964a-4278-4ec8-b741-37914e3b31e6", + "_testId": "urn:uuid:9d5db509-4c6f-4459-ad3f-8d584001f369", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -1544,12 +1647,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 129, + "duration": 134, "state": "passed", "speed": "slow" }, @@ -1566,9 +1669,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:ce750f72-59ca-4661-83cb-4bda3afd3239", + "_testId": "urn:uuid:918c5bfb-e853-4e82-95f1-0856799cc568", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -1581,7 +1684,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3858, + "_idleStart": 4052, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1595,7 +1698,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1605,9 +1708,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:030d51ba-c13f-47dd-b117-cd4ae9e9b0d8", + "_testId": "urn:uuid:a013c1f1-69af-4c9d-b7a6-bfc42d3e4b07", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -1619,12 +1722,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3858, + "_idleStart": 4052, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 424, + "duration": 461, "state": "passed", "speed": "slow" } @@ -1645,7 +1748,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1668,7 +1771,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -1678,12 +1781,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3316, + "_idleStart": 3476, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 412, + "duration": 440, "_error": null } ], @@ -1695,9 +1798,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:14f988da-92ce-4612-b79b-f198049c29c8" + "_testId": "urn:uuid:b47e3b3d-89a7-4107-932d-afea8ad7b889" }, { "title": "SpruceID", @@ -1717,9 +1820,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:0b957100-c165-4b9a-a2d7-209cc85c207c", + "_testId": "urn:uuid:fd5be651-6080-451f-ba15-d64fd9c3a7af", "cell": { "columnId": "SpruceID", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -1731,12 +1834,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4740, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -1753,9 +1856,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:c5b58622-b3d8-46e5-af0f-91d33d74bba3", + "_testId": "urn:uuid:1967eea3-aaa6-4e3c-aab4-bff32b551a18", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -1767,7 +1870,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4740, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1789,9 +1892,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:2e29f4fb-7757-44e7-bbe7-891ccb2fcc94", + "_testId": "urn:uuid:d35b9897-ba57-4523-aa9b-365c02a5d7d6", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -1803,12 +1906,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -1825,9 +1928,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:7b713c83-38ed-4052-938b-e8fb739ae2a5", + "_testId": "urn:uuid:86d84484-e8fa-440d-99db-f646acb2d93c", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -1839,14 +1942,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 51, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -1861,9 +1964,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:bfa40014-78ac-415a-8d3f-27bde82690e3", + "_testId": "urn:uuid:f364c425-072a-48b6-9f1a-bd158bd935ca", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -1876,7 +1979,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4403, + "_idleStart": 4792, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1890,7 +1993,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1900,9 +2003,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:51c785d8-ee0b-4ce7-8110-0cfca9605c6c", + "_testId": "urn:uuid:317e1a54-0b43-40c2-a6e0-5be8d50045db", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -1914,12 +2017,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4403, + "_idleStart": 4793, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 182, "state": "passed", "speed": "slow" } @@ -1940,7 +2043,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1963,7 +2066,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -1973,12 +2076,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4283, + "_idleStart": 4513, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 84, + "duration": 226, "_error": null } ], @@ -1990,9 +2093,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:68ec360a-891e-4127-a3a9-815d0d769dc1" + "_testId": "urn:uuid:5689afe0-bdf0-4c7a-b2c5-42ad35ce3f5e" }, { "title": "VC Issuer Mock", @@ -2012,9 +2115,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:03e07b33-7982-413f-9519-a3804c663be8", + "_testId": "urn:uuid:bf1d31f7-0769-4ba4-8e0b-dc9e84cd937a", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2026,7 +2129,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5227, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2048,9 +2151,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:def96228-79d2-47b4-976a-e0fee6be435e", + "_testId": "urn:uuid:cdca4196-2d6f-4240-8343-354843402bbe", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2062,7 +2165,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5227, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2084,9 +2187,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:38e30607-62b8-4f3d-99f1-8572b00a8da5", + "_testId": "urn:uuid:f2a98604-15d1-400f-a115-35822816d3b9", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -2098,12 +2201,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5228, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -2120,9 +2223,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:b6acfbd4-f703-4562-b9a5-8cdf04560f6e", + "_testId": "urn:uuid:6bc5fc72-e99d-4e2e-b299-03fb317097ec", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -2134,12 +2237,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5228, + "_idleStart": 5512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 678, + "duration": 498, "state": "passed", "speed": "slow" }, @@ -2156,9 +2259,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:70c167b0-d3a4-497d-b07c-02cbdfae6d70", + "_testId": "urn:uuid:36da80ff-8d34-4c36-9801-930cbe6731b9", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -2171,7 +2274,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5906, + "_idleStart": 6011, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2185,7 +2288,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2195,9 +2298,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:012ef293-82f4-4f4d-884f-e575445a2e07", + "_testId": "urn:uuid:00ec1885-da6c-48d7-8662-00850cf5cb06", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -2209,12 +2312,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5906, + "_idleStart": 6011, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 437, + "duration": 384, "state": "passed", "speed": "slow" } @@ -2235,7 +2338,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -2258,7 +2361,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "originalTitle": "\"before all\" hook", @@ -2268,12 +2371,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4512, + "_idleStart": 4976, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 715, + "duration": 534, "_error": null } ], @@ -2285,9 +2388,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "smJSQSYQJOi1XjZ8c1keB", + "parent": "S1XTNuQoGszbzImUAOfBM", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "_testId": "urn:uuid:90376de0-7827-4844-9088-9d422bc12a8d" + "_testId": "urn:uuid:0b3f3c32-a5b8-42c5-b920-d366a8c285bf" } ], "root": false, @@ -2303,13 +2406,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:d824bc4b-2614-4f1f-9217-5571552f0a21", + "_testId": "urn:uuid:1963c231-a358-4222-b86f-24b1a7c287e6", "columns": [ "ACA-py", "apicatalog.com", @@ -2337,9 +2440,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:428011fa-fe45-4ce3-aaa0-cf9618fc36a2", + "_testId": "urn:uuid:395d5bd3-f74b-4200-abf9-c1a78fb91729", "cell": { "columnId": "ACA-py", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2351,7 +2454,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 586, + "_idleStart": 675, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2378,9 +2481,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:b60732a6-9869-4b7c-89ff-5fb60393a213", + "_testId": "urn:uuid:7aabcd8f-c89d-4b82-90f3-0f8c75194a81", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2392,12 +2495,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1676, + "_idleStart": 1686, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -2414,9 +2517,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:25a5ad18-2453-4d5d-9fac-85ed6fea231a", + "_testId": "urn:uuid:914ff5f2-f455-4624-bbe8-b58ef212c71b", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2428,12 +2531,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2545, + "_idleStart": 2825, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -2450,9 +2553,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:36a6b14b-637f-46e6-9d9d-c79fa5a4d43d", + "_testId": "urn:uuid:926d401f-f3b1-44da-bfaa-152af9402c1f", "cell": { "columnId": "OpSecId", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2464,14 +2567,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3067, + "_idleStart": 3344, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 1, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:47:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -2486,9 +2594,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:8e095a97-9258-4af2-a83f-2e15585cc55c", + "_testId": "urn:uuid:a5843549-c7fb-419e-9363-085f5a1150d7", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2500,7 +2608,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3728, + "_idleStart": 3916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2522,9 +2630,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:0b957100-c165-4b9a-a2d7-209cc85c207c", + "_testId": "urn:uuid:fd5be651-6080-451f-ba15-d64fd9c3a7af", "cell": { "columnId": "SpruceID", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2536,12 +2644,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4740, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -2558,9 +2666,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:03e07b33-7982-413f-9519-a3804c663be8", + "_testId": "urn:uuid:bf1d31f7-0769-4ba4-8e0b-dc9e84cd937a", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms." @@ -2572,7 +2680,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5227, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2600,9 +2708,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:068e0cb4-ab6d-41dc-bfaf-b3e586e42e1d", + "_testId": "urn:uuid:f019c6b5-b5fa-467f-8f8c-0a67ad7e0e3b", "cell": { "columnId": "ACA-py", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2614,12 +2722,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 588, + "_idleStart": 677, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "failed", "err": { "name": "AssertionError", @@ -2641,9 +2749,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:dca0d4c9-7db6-42c7-aedb-571669f0ed6f", + "_testId": "urn:uuid:cc96f1d2-2fbc-4df5-91ab-39e343fbf264", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2655,12 +2763,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1676, + "_idleStart": 1686, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "failed", "err": {} }, @@ -2677,9 +2785,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:31832308-1d15-46d9-9535-b58a3a83953c", + "_testId": "urn:uuid:7d0e7680-77d2-4b8c-8dc8-6fe5cb63f2de", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2691,7 +2799,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2545, + "_idleStart": 2825, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2713,9 +2821,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:94314dd2-064c-45e0-b5a7-47fc17a2b1b1", + "_testId": "urn:uuid:d3972900-c24b-4c17-8cf4-d8e86b61af63", "cell": { "columnId": "OpSecId", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2727,14 +2835,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3067, + "_idleStart": 3344, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:54:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -2749,9 +2862,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:0cd52c23-3bf9-40d4-9f51-bc3e3ea87b00", + "_testId": "urn:uuid:907934d5-93a1-4457-a1d4-8a671ac7bfed", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2763,12 +2876,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -2785,9 +2898,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:c5b58622-b3d8-46e5-af0f-91d33d74bba3", + "_testId": "urn:uuid:1967eea3-aaa6-4e3c-aab4-bff32b551a18", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2799,7 +2912,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4740, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2821,9 +2934,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:def96228-79d2-47b4-976a-e0fee6be435e", + "_testId": "urn:uuid:cdca4196-2d6f-4240-8343-354843402bbe", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming issuer implementation MUST include all required properties in the conforming documents it produces." @@ -2835,7 +2948,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5227, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2863,9 +2976,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:37cdcdb4-7ea7-4ee9-826e-4cb985ffdc12", + "_testId": "urn:uuid:b00ca27a-a47b-4d2c-8909-849d222c3601", "cell": { "columnId": "ACA-py", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -2877,7 +2990,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 588, + "_idleStart": 677, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2904,9 +3017,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:e39af555-8d40-4f5e-a945-898f64b17d51", + "_testId": "urn:uuid:ca80a0e7-63b9-4680-9870-3a09439d56fe", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -2918,7 +3031,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1677, + "_idleStart": 1687, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -2940,9 +3053,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:04f95a5f-8a9c-4a81-9031-92263c8bfad0", + "_testId": "urn:uuid:5be6b336-db19-4c40-b300-a31f1d2a81b8", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -2954,12 +3067,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2546, + "_idleStart": 2826, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -2976,9 +3089,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:19d6cc78-c8c8-4e0a-9f18-43920b52909e", + "_testId": "urn:uuid:f3851db8-5d2f-4c6f-93dd-2be2b517398d", "cell": { "columnId": "OpSecId", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -2990,14 +3103,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3068, + "_idleStart": 3345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected OpSecId to have issued a VC.: expected undefined to exist", + "showDiff": false, + "stack": "AssertionError: Expected OpSecId to have issued a VC.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js:62:16)\n at process.processImmediate (node:internal/timers:483:21)" + } }, { "type": "test", @@ -3012,9 +3130,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:b70ca14c-e371-412e-9c81-29683c79a3c7", + "_testId": "urn:uuid:45f37201-e9f1-4d64-a5bd-6f3ec11e4695", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -3026,7 +3144,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3048,9 +3166,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:2e29f4fb-7757-44e7-bbe7-891ccb2fcc94", + "_testId": "urn:uuid:d35b9897-ba57-4523-aa9b-365c02a5d7d6", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -3062,12 +3180,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -3084,9 +3202,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:38e30607-62b8-4f3d-99f1-8572b00a8da5", + "_testId": "urn:uuid:f2a98604-15d1-400f-a115-35822816d3b9", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms." @@ -3098,12 +3216,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5228, + "_idleStart": 5511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" } @@ -3126,9 +3244,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:2d13c336-e7c4-42c5-a8fb-7cd0f9783921", + "_testId": "urn:uuid:10296932-f835-47d9-a3e1-42d75c253a0c", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3140,12 +3258,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 589, + "_idleStart": 678, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -3253,9 +3371,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:4122833f-eac4-42fe-9751-a4ab10d76364", + "_testId": "urn:uuid:6c6b721e-ac4d-4c92-b2cc-0843b90aa790", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3267,12 +3385,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1678, + "_idleStart": 1688, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 199, + "duration": 98, "state": "failed", "err": { "generatedMessage": false, @@ -3283,7 +3401,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"VerifiableCredential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-10-13T05:06:26Z\",\"proofValue\":\"z3CPA1ACYfSgFxdwsNm4kwev1CJJvGTEj9jvS4xBinCA4bxx1vnkgwB6Y4Nr1WXQ1Gew8MQaXpnzsdPxuPfPpGxyQ\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"VerifiableCredential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-10-20T05:05:46Z\",\"proofValue\":\"z2Zs15q8TQsQZk4Lcwp7iaeWa1YAUF4umhaf87Jy2Nw44yLoY47taqLj23kDfDz481eSkjzzGZ7uwjdgzT5RBaajU\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -3300,8 +3418,8 @@ "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "created": "2024-10-13T05:06:26Z", - "proofValue": "z3CPA1ACYfSgFxdwsNm4kwev1CJJvGTEj9jvS4xBinCA4bxx1vnkgwB6Y4Nr1WXQ1Gew8MQaXpnzsdPxuPfPpGxyQ" + "created": "2024-10-20T05:05:46Z", + "proofValue": "z2Zs15q8TQsQZk4Lcwp7iaeWa1YAUF4umhaf87Jy2Nw44yLoY47taqLj23kDfDz481eSkjzzGZ7uwjdgzT5RBaajU" } }, "options": { @@ -3403,9 +3521,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:2b147665-13f3-494f-980c-3d2549800aae", + "_testId": "urn:uuid:4e96b694-c6f1-4a5c-81b9-3150e99919cb", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3417,12 +3535,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2546, + "_idleStart": 2826, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 200, + "duration": 174, "state": "passed", "speed": "slow" }, @@ -3439,9 +3557,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:5ecb1f03-4407-47ab-bd20-969a9f2f17ba", + "_testId": "urn:uuid:5963b1c9-aa93-4b14-934b-5b0f58413ffa", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3453,14 +3571,102 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3068, + "_idleStart": 3345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, - "state": "passed", - "speed": "medium" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -3475,9 +3681,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:9cfe964a-4278-4ec8-b741-37914e3b31e6", + "_testId": "urn:uuid:9d5db509-4c6f-4459-ad3f-8d584001f369", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3489,12 +3695,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3729, + "_idleStart": 3917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 129, + "duration": 134, "state": "passed", "speed": "slow" }, @@ -3511,9 +3717,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:7b713c83-38ed-4052-938b-e8fb739ae2a5", + "_testId": "urn:uuid:86d84484-e8fa-440d-99db-f646acb2d93c", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3525,14 +3731,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4368, + "_idleStart": 4741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 51, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -3547,9 +3753,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:b6acfbd4-f703-4562-b9a5-8cdf04560f6e", + "_testId": "urn:uuid:6bc5fc72-e99d-4e2e-b299-03fb317097ec", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms." @@ -3561,12 +3767,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5228, + "_idleStart": 5512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 678, + "duration": 498, "state": "passed", "speed": "slow" } @@ -3589,9 +3795,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:a3f38868-382d-4228-b1be-2aa7691c924e", + "_testId": "urn:uuid:902da8f7-3a09-4b90-8b49-6315fc80cbe7", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3604,12 +3810,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 618, + "_idleStart": 707, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "Tested by other tests in this suite." @@ -3628,9 +3834,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:9ced1756-e0d7-4af0-8216-837c390e853d", + "_testId": "urn:uuid:95553223-94e6-429a-99cf-5da8c5cafd08", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3643,7 +3849,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1876, + "_idleStart": 1786, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3667,9 +3873,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:80e668cb-6170-4f1d-bcf3-2916c45ede9f", + "_testId": "urn:uuid:ce8f607d-9c1a-436f-b84a-3f0218807fd1", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3682,7 +3888,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2745, + "_idleStart": 3001, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3706,9 +3912,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:66d01777-5b8f-49ec-8d2f-7768fc32a9da", + "_testId": "urn:uuid:1cdd6744-f604-44f2-84eb-f2931b3e0d13", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3721,7 +3927,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3140, + "_idleStart": 3371, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3745,9 +3951,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:ce750f72-59ca-4661-83cb-4bda3afd3239", + "_testId": "urn:uuid:918c5bfb-e853-4e82-95f1-0856799cc568", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3760,7 +3966,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3858, + "_idleStart": 4052, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3784,9 +3990,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:bfa40014-78ac-415a-8d3f-27bde82690e3", + "_testId": "urn:uuid:f364c425-072a-48b6-9f1a-bd158bd935ca", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3799,7 +4005,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4403, + "_idleStart": 4792, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3823,9 +4029,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:70c167b0-d3a4-497d-b07c-02cbdfae6d70", + "_testId": "urn:uuid:36da80ff-8d34-4c36-9801-930cbe6731b9", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST check that each required property satisfies the normative requirementsfor that property.", @@ -3838,7 +4044,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5906, + "_idleStart": 6011, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -3858,7 +4064,7 @@ { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3868,9 +4074,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "9qF_v8y9BEh4xDdeYsCiC", + "parent": "FOg8YlHejb0qHzOa6GXMD", "ctx": null, - "_testId": "urn:uuid:03a68757-6f15-4eb9-9e6b-53f5c0874be4", + "_testId": "urn:uuid:1a69db90-37e2-44e3-82fa-2031ce3615b1", "cell": { "columnId": "ACA-py", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -3882,19 +4088,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 618, + "_idleStart": 707, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 136, + "duration": 211, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3904,9 +4110,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "WG-z17afLbJ-1TOJ-depc", + "parent": "vYQtOj-8CRI0uMJ0Iij7H", "ctx": null, - "_testId": "urn:uuid:f73e9e77-6deb-4706-887f-978251c4da94", + "_testId": "urn:uuid:74dca51a-1480-49ea-a6d6-d370a882d8df", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -3918,19 +4124,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1877, + "_idleStart": 1786, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 297, + "duration": 197, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3940,9 +4146,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "JXVtCJUdsPJD3szk8IlEC", + "parent": "yP0ZeP6mt7vtqv3tFytTl", "ctx": null, - "_testId": "urn:uuid:1c781c34-9c81-4d5f-96a0-de14f9e8c977", + "_testId": "urn:uuid:d1b60f79-6a0b-4f3f-acac-016e9a10c817", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -3954,19 +4160,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2746, + "_idleStart": 3001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 104, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3976,9 +4182,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "O45I-kkbG3sMSWKZt1ukW", + "parent": "RpXYuO4Wb9r0G4d_VPLIp", "ctx": null, - "_testId": "urn:uuid:c6ca56ce-a3ca-44e8-9068-f334d17e7e3b", + "_testId": "urn:uuid:3ba97e8e-0177-4a68-bb4e-b57f07951d1f", "cell": { "columnId": "OpSecId", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -3990,19 +4196,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3140, + "_idleStart": 3371, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 175, + "duration": 105, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4012,9 +4218,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "jX7pkBO6I93XtRa-ELCDd", + "parent": "niAmmq-ujtuhQPsgc_YeC", "ctx": null, - "_testId": "urn:uuid:030d51ba-c13f-47dd-b117-cd4ae9e9b0d8", + "_testId": "urn:uuid:a013c1f1-69af-4c9d-b7a6-bfc42d3e4b07", "cell": { "columnId": "Procivis One Core", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -4026,19 +4232,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3858, + "_idleStart": 4052, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 424, + "duration": 461, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4048,9 +4254,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "3oWp_ERUjAiAQGWWn8yIG", + "parent": "cUFJxAvweX7sGP3FbS-S3", "ctx": null, - "_testId": "urn:uuid:51c785d8-ee0b-4ce7-8110-0cfca9605c6c", + "_testId": "urn:uuid:317e1a54-0b43-40c2-a6e0-5be8d50045db", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -4062,19 +4268,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4403, + "_idleStart": 4793, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 182, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc), {name: 'HTTPError'},\n 'Failed to reject malformed VP.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.`;\n const doc = {\n type: ['NonconformingDocument']\n };\n await assert.rejects(endpoints.verify(doc),\n 'Failed to reject malformed VC.');\n await assert.rejects(endpoints.verifyVp(doc),\n 'Failed to reject malformed VP.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4084,9 +4290,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/1-3-conformance.js", - "parent": "D70DgFNYWHNYWRm0uE9wV", + "parent": "-Z62mmL-dkuaGxg5jBA15", "ctx": null, - "_testId": "urn:uuid:012ef293-82f4-4f4d-884f-e575445a2e07", + "_testId": "urn:uuid:00ec1885-da6c-48d7-8662-00850cf5cb06", "cell": { "columnId": "VC Issuer Mock", "rowId": "A conforming verifier implementation MUST produce errors when non-conforming documents are detected." @@ -4098,12 +4304,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5906, + "_idleStart": 6011, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 437, + "duration": 384, "state": "passed", "speed": "slow" } @@ -4133,9 +4339,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:99c85e1c-1c36-4368-b053-88df1788b62a", + "_testId": "urn:uuid:f0892e68-ede8-40a7-bdfe-31d2f7d96028", "cell": { "columnId": "ACA-py", "rowId": "Verifiable credentials MUST include a @context property." @@ -4147,12 +4353,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6345, + "_idleStart": 6396, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 130, "state": "failed", "err": { "response": {}, @@ -4265,9 +4471,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:c3845697-7ebe-4c05-aa18-e42be35e6728", + "_testId": "urn:uuid:8eead333-9aec-43e9-a92b-e56f036de1d2", "cell": { "columnId": "ACA-py", "rowId": "Verifiable presentations MUST include a @context property." @@ -4279,12 +4485,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6473, + "_idleStart": 6528, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 51, + "duration": 43, "state": "failed", "err": { "generatedMessage": false, @@ -4295,7 +4501,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:31Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z58mKE4TwKr3n4afw4zEzUr8ThGs9ZWT5AHZu6cifxX7VCrYRbVuQKfDXv9ZytD39He8wDi9bubmJaUPDxeCreb8u\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z444oFHKyKbJRBQwqWY8tdgE8f2WaoJqRwytt57MXVUnqSgnuDCzttBDR6mnWXhHfDuVQxvVP4Gh6qVb2GQRVJze1\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -4307,18 +4513,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:31Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z58mKE4TwKr3n4afw4zEzUr8ThGs9ZWT5AHZu6cifxX7VCrYRbVuQKfDXv9ZytD39He8wDi9bubmJaUPDxeCreb8u" + "proofValue": "z444oFHKyKbJRBQwqWY8tdgE8f2WaoJqRwytt57MXVUnqSgnuDCzttBDR6mnWXhHfDuVQxvVP4Gh6qVb2GQRVJze1" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -4406,9 +4612,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:c4b67660-31e6-4268-83e9-05f142718421", + "_testId": "urn:uuid:f6f9a5d9-f54a-426e-a712-f9d5cc5e444e", "cell": { "columnId": "ACA-py", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -4420,12 +4626,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6524, + "_idleStart": 6571, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "response": {}, @@ -4528,7 +4734,7 @@ { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4538,9 +4744,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:8d09c8e4-0094-4262-9b9e-3dcbff2b902c", + "_testId": "urn:uuid:8a943d1a-ca73-4d9d-90a7-31cc15b5e2a4", "cell": { "columnId": "ACA-py", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -4552,19 +4758,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6553, + "_idleStart": 6599, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 207, + "duration": 165, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4574,9 +4780,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:6a413df6-1919-49a1-9e76-daf39ac13c23", + "_testId": "urn:uuid:b71d6745-1c26-466b-9123-c3e7d047b805", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -4588,7 +4794,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6761, + "_idleStart": 6764, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -4712,9 +4918,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:111f0277-17b0-4896-968c-8eac2d31a9eb", + "_testId": "urn:uuid:3d31387b-99ab-4b49-8aed-3f6abb314c4f", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -4726,12 +4932,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6789, + "_idleStart": 6792, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 44, + "duration": 36, "state": "failed", "err": { "generatedMessage": false, @@ -4742,7 +4948,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:32Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zABxu6yTH6E7XTCixT32oWSMPiSbE54eN834XroPXBRdQHrDhacaKtiXT3vn4fHxzYyPiyupMLwpWkkh5qM6Kn5r\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:32Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z53ScymYufsvoZVAaEoXYxugFjUPc7TeieoRSpczKzh4HbsQhjipDRxuu3CabxyPcvruPiMy2sU1zACBr1WMH93SU\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4qqAc9zzvSNBDBYiDrEQS7cHc322qeHHLHAwazdXsdg1HDpKjzSByjfAvkhg7W1fxdnfAGbUJ3TpNWGEWtqEFwAc\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5kmaEhYMz57K934GXbYmkgmVGbpQwV1zGGJskTefY9nvG4CkS6YoF6TUKcSgmJbhL8EmBWvMNRk9AWHwPfFeiLQm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -4766,28 +4972,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:32Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "zABxu6yTH6E7XTCixT32oWSMPiSbE54eN834XroPXBRdQHrDhacaKtiXT3vn4fHxzYyPiyupMLwpWkkh5qM6Kn5r" + "proofValue": "z4qqAc9zzvSNBDBYiDrEQS7cHc322qeHHLHAwazdXsdg1HDpKjzSByjfAvkhg7W1fxdnfAGbUJ3TpNWGEWtqEFwAc" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:32Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z53ScymYufsvoZVAaEoXYxugFjUPc7TeieoRSpczKzh4HbsQhjipDRxuu3CabxyPcvruPiMy2sU1zACBr1WMH93SU" + "proofValue": "z5kmaEhYMz57K934GXbYmkgmVGbpQwV1zGGJskTefY9nvG4CkS6YoF6TUKcSgmJbhL8EmBWvMNRk9AWHwPfFeiLQm" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -4879,7 +5085,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -4898,9 +5104,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:c7934349-f454-4c2a-a118-0eaa7a8e3a75" + "_testId": "urn:uuid:5b802bc0-a474-4f49-a96a-d008cdfb00ad" }, { "title": "apicatalog.com", @@ -4920,9 +5126,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:1c73ac84-97bd-45c1-a718-d602bec2b640", + "_testId": "urn:uuid:73397f4a-860b-4006-9158-ca2effafec53", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials MUST include a @context property." @@ -4934,12 +5140,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6833, + "_idleStart": 6829, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 934, + "duration": 650, "state": "passed", "speed": "slow" }, @@ -4956,9 +5162,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:4da58937-cbac-4a5d-bcc3-61cbdf782de8", + "_testId": "urn:uuid:2c54ce1b-d490-48bd-a3b9-01ec839e1c17", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST include a @context property." @@ -4970,12 +5176,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7768, + "_idleStart": 7479, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2101, + "duration": 201, "state": "passed", "speed": "slow" }, @@ -4992,9 +5198,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:09da0f28-d00e-404e-90d5-c47f23fb049f", + "_testId": "urn:uuid:d3a983cb-dff6-4b32-9d04-432f37dd6f9f", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5006,19 +5212,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9868, + "_idleStart": 7680, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 998, + "duration": 321, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5028,9 +5234,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:23ed0749-b2de-4a73-92c3-f3ab0a06bcde", + "_testId": "urn:uuid:8d5a5316-b31e-4b83-b5a0-6005bf69d0e4", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5042,19 +5248,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 10867, + "_idleStart": 8001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 506, + "duration": 178, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5064,9 +5270,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:93636e87-2f31-4392-acf4-4bb4d578f656", + "_testId": "urn:uuid:ed6937aa-d5a2-4e0e-80f8-17937009da45", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -5078,12 +5284,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11374, + "_idleStart": 8179, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1086, + "duration": 504, "state": "passed", "speed": "slow" }, @@ -5100,9 +5306,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:af9b9baf-f9d8-457c-80d8-bd7c7a1b170c", + "_testId": "urn:uuid:c4f8873a-b898-42ba-8154-32f93188248d", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -5114,12 +5320,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12461, + "_idleStart": 8683, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 204, + "duration": 196, "state": "failed", "err": { "generatedMessage": false, @@ -5130,7 +5336,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3qipm5F3AJhtgfHhPMmo7vTuHhjS2fQzBvvb2ddpo7zop2reWFVcSgtxCXstWQfaRw15mV2pFknLs2MGF4wUeqBE\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Z1MvSL3fVStDsyNT4CLi4wy6iaEfGBJEZPtqNbTToWxP8NvdxNeYFnkTLuJUyGobEH2kHxwswTm2CbSQnJZSkjj\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zpyK5VTqWmQmns57Gx2kHAHWmFCrfSGgNPQyrthXwrpXecx37qpoQDLrotHRpGcEqmuD9KatnBLDGgxXtajnPAec\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z61iju9TducXvgYrCcwoAodvTZmaGjqmivfwJRLmeCTiqFKijNjyW6ivA8FxwgQ2QopfQjoEy9P34MZM5RjkUf9Nj\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -5154,28 +5360,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:37Z", + "created": "2024-10-20T05:05:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z3qipm5F3AJhtgfHhPMmo7vTuHhjS2fQzBvvb2ddpo7zop2reWFVcSgtxCXstWQfaRw15mV2pFknLs2MGF4wUeqBE" + "proofValue": "zpyK5VTqWmQmns57Gx2kHAHWmFCrfSGgNPQyrthXwrpXecx37qpoQDLrotHRpGcEqmuD9KatnBLDGgxXtajnPAec" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:37Z", + "created": "2024-10-20T05:05:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2Z1MvSL3fVStDsyNT4CLi4wy6iaEfGBJEZPtqNbTToWxP8NvdxNeYFnkTLuJUyGobEH2kHxwswTm2CbSQnJZSkjj" + "proofValue": "z61iju9TducXvgYrCcwoAodvTZmaGjqmivfwJRLmeCTiqFKijNjyW6ivA8FxwgQ2QopfQjoEy9P34MZM5RjkUf9Nj" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -5275,7 +5481,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -5294,9 +5500,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:97106574-8d76-4e4f-bfc9-d5cbac0de29b" + "_testId": "urn:uuid:62190247-6808-4b0b-ab5a-3bc5832d1db9" }, { "title": "Digital Bazaar", @@ -5316,9 +5522,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:522746a4-1970-4b8c-8bc0-997d16768cea", + "_testId": "urn:uuid:f7ac61a1-b991-4dec-bd81-ae8ae5c46308", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials MUST include a @context property." @@ -5330,12 +5536,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12665, + "_idleStart": 8880, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 683, + "duration": 480, "state": "passed", "speed": "slow" }, @@ -5352,9 +5558,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:02667600-9916-4784-9f45-22a932849973", + "_testId": "urn:uuid:054078be-5aa4-4eeb-8d42-c33a6b377bfc", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations MUST include a @context property." @@ -5366,12 +5572,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13349, + "_idleStart": 9361, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 522, + "duration": 157, "state": "passed", "speed": "slow" }, @@ -5388,9 +5594,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:a4b74625-7672-4027-8798-7bb175ed03ce", + "_testId": "urn:uuid:959c11e9-a81a-4ec9-bdb8-2e8f19857037", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5402,19 +5608,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13871, + "_idleStart": 9519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 261, + "duration": 196, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5424,9 +5630,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:b8a7e2d9-81b0-4bc6-87c4-3458f67a434d", + "_testId": "urn:uuid:240d5bae-3a05-42dd-af83-29f8e6daa6cc", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5438,19 +5644,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14131, + "_idleStart": 9715, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 3124, + "duration": 148, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5460,9 +5666,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:0eecf1a5-e2dc-4fb1-839b-c6f134da0f5f", + "_testId": "urn:uuid:a70ebc74-f45a-4bf4-8483-d83564d5e313", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -5474,12 +5680,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17256, + "_idleStart": 9864, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 718, + "duration": 777, "state": "passed", "speed": "slow" }, @@ -5496,9 +5702,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:e123aa9b-4b8f-4c68-ab1e-c143cce2a31e", + "_testId": "urn:uuid:4dea7d76-1d6a-4937-b534-18a537206b91", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -5510,12 +5716,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17974, + "_idleStart": 10642, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 7584, + "duration": 1181, "state": "passed", "speed": "slow" } @@ -5536,7 +5742,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -5555,9 +5761,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:048273c2-18d5-4217-b7ec-1eba8f82a081" + "_testId": "urn:uuid:da811ebb-95f9-4c3c-b196-cd699cb83c7d" }, { "title": "OpSecId", @@ -5577,9 +5783,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:6f214ae3-fa4b-4844-8498-03ca27685052", + "_testId": "urn:uuid:a8a6a2b0-f6e7-4bed-9937-2faa73bb0449", "cell": { "columnId": "OpSecId", "rowId": "Verifiable credentials MUST include a @context property." @@ -5591,14 +5797,108 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25559, + "_idleStart": 11824, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 349, - "state": "passed", - "speed": "slow" + "duration": 88, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + } }, { "type": "test", @@ -5613,9 +5913,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:303db2fb-adfe-451d-9cac-c8fa0582674e", + "_testId": "urn:uuid:c4b610fd-6701-4b70-8947-485f321f197d", "cell": { "columnId": "OpSecId", "rowId": "Verifiable presentations MUST include a @context property." @@ -5627,14 +5927,119 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25907, + "_idleStart": 11913, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 136, - "state": "passed", - "speed": "slow" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4oK2S24tc4MWykMgY6Xt75maLReddd6y462unwnV5HYXeTe7ZWkyp4wEEW9ktrW6ehh81HLxm3tYsoppd8yDNrL8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:05:57Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4oK2S24tc4MWykMgY6Xt75maLReddd6y462unwnV5HYXeTe7ZWkyp4wEEW9ktrW6ehh81HLxm3tYsoppd8yDNrL8" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -5649,9 +6054,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:3d159036-d90a-4d7e-9e5b-726484c22a3b", + "_testId": "urn:uuid:2648a503-d1fa-4c05-a5af-f3532e2bba8c", "cell": { "columnId": "OpSecId", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5663,19 +6068,113 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26045, + "_idleStart": 11940, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 216, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + } }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5685,9 +6184,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:1b0d2f09-43aa-4199-9317-447725ed672f", + "_testId": "urn:uuid:552becac-d431-4a28-a982-beedc2d3ac0a", "cell": { "columnId": "OpSecId", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -5699,19 +6198,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26261, + "_idleStart": 11964, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 206, + "duration": 174, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5721,9 +6220,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:3598943c-03fc-4b0d-aa31-066a05c2de69", + "_testId": "urn:uuid:cdb7c569-51fd-41dd-948a-1810a0ef5b4d", "cell": { "columnId": "OpSecId", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -5735,165 +6234,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26467, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 234, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(\n endpoints.verifyVp(await createLocalVp({\n presentation:\n require('./input/presentation-context-combo1-ok.json')\n })),\n 'Failed to support multiple `@context` URLs in a VP.');\n await assert.doesNotReject(\n endpoints.verifyVp(await createLocalVp({\n presentation:\n require('./input/presentation-context-combo2-ok.json')\n })),\n 'Failed to support objects in the `@context` Array in a VP.');\n // first create a valid VP\n const vp = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n // then inject incorrect `@context` values and test verification\n vp['@context'][1] = 'https://example.com';\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an invalid `@context` URL.');\n vp['@context'][1] = 'https ://not-a-url/contexts/example/v1';\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an invalid `@context` URL.');\n vp['@context'][1] = 123192875;\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an unsupported `@context` value type ' +\n '(number).');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", - "ctx": null, - "_testId": "urn:uuid:c108677f-272b-4238-aa62-282658af4588", - "cell": { - "columnId": "OpSecId", - "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 26702, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 362, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "13r3LPKMHrqIRrqstpB7l", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:d7c640c2-9518-4d8c-a86d-d686802a2558" - }, - { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", - "ctx": null, - "_testId": "urn:uuid:8ae53575-d95e-4530-92b6-19b1a0655f37", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable credentials MUST include a @context property." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 27063, + "_idleStart": 12138, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 854, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable presentations MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", - "ctx": null, - "_testId": "urn:uuid:72e561ed-75de-4607-a654-75c8afca7138", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable presentations MUST include a @context property." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 27918, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 102, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -5904,32 +6250,25 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3Jw3pnsECLv6b4TFgaMvu3bSrgAcDAXHqcM5jrjqQaEGxqhUnZMPHN9VugyggQqQASo95ivEWfxQBWBft7SXRmaa\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2" + "https://www.w3.org/ns/credentials/v2", + "https://www.w3.org/ns/credentials/examples/v2" ], "type": [ - "VerifiablePresentation" + "VerifiableCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:53Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3Jw3pnsECLv6b4TFgaMvu3bSrgAcDAXHqcM5jrjqQaEGxqhUnZMPHN9VugyggQqQASo95ivEWfxQBWBft7SXRmaa" - } + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -5998,129 +6337,12 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } }, - { - "type": "test", - "title": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n //positive issue test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n assert(Array.isArray(vc['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vc['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.'\n );\n // negative issue test\n await injectOrReject(endpoints,\n './input/credential-missing-base-context-fail-or-inject.json');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", - "ctx": null, - "_testId": "urn:uuid:d3309290-4517-4dd7-ab59-858de2f0e3cb", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 28021, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 519, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", - "ctx": null, - "_testId": "urn:uuid:b55f28de-05c7-4cac-a248-5d2a4ba0aa4a", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 28540, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 306, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", - "ctx": null, - "_testId": "urn:uuid:e44f24b3-0999-4fca-ad0d-73ef566d2135", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 28847, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 451, - "state": "passed", - "speed": "slow" - }, { "type": "test", "title": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", @@ -6134,11 +6356,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:b5690815-97a2-4663-a602-dfa9e35415f2", + "_testId": "urn:uuid:34a4620d-45c2-4f51-8de6-e921b3fabf8a", "cell": { - "columnId": "Procivis One Core", + "columnId": "OpSecId", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, @@ -6148,12 +6370,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29298, + "_idleStart": 12163, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -6164,7 +6386,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2vG8zeMVHQYCDBjkwYegAhYze3icx3pVrKSXzd3hCzLXptavJrqYaQm5JPRf1zRAZi1UkEwbcj5u9vk2dtTAq7cq\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pNiW9zzVQct2toqSUoSrCHbTbTMnWYY8BffgT6cz1cVMzpujwZXuD17FrZUE7LydeB3wkf1UmpYbC532BG8TqVK\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2eqKwyGZmVUGToRzmiFbGBJ7qpNdmDazCVNUy2nKa97MK8BCymTupkay62xDV4XM1C2HFA2GZUp1QQgk87rHdBnr\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z656DheWL8QV4YjPJ9FRs9T9A4Z6EeFTi1FrvCU4oazHUNSHTj4vm4u4CxXn8FbH1uydZyv3PHwiTxQPsj6SdetqG\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -6188,30 +6410,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:05:57Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z2vG8zeMVHQYCDBjkwYegAhYze3icx3pVrKSXzd3hCzLXptavJrqYaQm5JPRf1zRAZi1UkEwbcj5u9vk2dtTAq7cq" + "proofValue": "z2eqKwyGZmVUGToRzmiFbGBJ7qpNdmDazCVNUy2nKa97MK8BCymTupkay62xDV4XM1C2HFA2GZUp1QQgk87rHdBnr" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:05:57Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pNiW9zzVQct2toqSUoSrCHbTbTMnWYY8BffgT6cz1cVMzpujwZXuD17FrZUE7LydeB3wkf1UmpYbC532BG8TqVK" + "proofValue": "z656DheWL8QV4YjPJ9FRs9T9A4Z6EeFTi1FrvCU4oazHUNSHTj4vm4u4CxXn8FbH1uydZyv3PHwiTxQPsj6SdetqG" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -6280,17 +6500,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -6301,7 +6512,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -6312,7 +6523,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -6331,12 +6542,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:4f9a0c0f-3500-4a55-98fd-df98d4566ca5" + "_testId": "urn:uuid:8127b137-a2b4-4c32-9204-b9e98c0740b5" }, { - "title": "SpruceID", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ @@ -6353,11 +6564,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:fca510ee-447e-4054-8999-6223c47d3f59", + "_testId": "urn:uuid:ea7aef1d-a6bf-4351-8d23-31c6dbc5837c", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, @@ -6367,12 +6578,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29404, + "_idleStart": 12194, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 160, + "duration": 851, "state": "passed", "speed": "slow" }, @@ -6389,11 +6600,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:70c2a2e9-d5e4-47d2-b6ff-eeea174ffb9b", + "_testId": "urn:uuid:646ec771-3500-4537-bf5d-1774fbf477a4", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, @@ -6403,12 +6614,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29565, + "_idleStart": 13046, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 118, "state": "failed", "err": { "generatedMessage": false, @@ -6419,7 +6630,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3UgeDFzrP1G1aUnBAEUFg1Mmm6BKuLFm1Sqvrg5CePUn4nxBxTsJP2p9ioJA6wUo6XcyCtu78WtDZAq9M4Rqhefu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3YxJhuG4GV8jkuzL1yrjEa3nLrzp2RAqDvu3WUkx3PbqccGHATDcpwU6iTdCWQWw9zY5kD3uSVp3sLFhgRJ2Lkph\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -6431,18 +6642,20 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:05:58Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3UgeDFzrP1G1aUnBAEUFg1Mmm6BKuLFm1Sqvrg5CePUn4nxBxTsJP2p9ioJA6wUo6XcyCtu78WtDZAq9M4Rqhefu" + "proofValue": "z3YxJhuG4GV8jkuzL1yrjEa3nLrzp2RAqDvu3WUkx3PbqccGHATDcpwU6iTdCWQWw9zY5kD3uSVp3sLFhgRJ2Lkph" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -6511,8 +6724,17 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } }, "operator": "doesNotReject" } @@ -6530,11 +6752,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:b20041f8-f86b-4323-8c89-08574ec64b08", + "_testId": "urn:uuid:3f1ccc2e-b40b-4235-bf9a-88fb28617c52", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, @@ -6544,19 +6766,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29589, + "_idleStart": 13164, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, + "duration": 561, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6566,11 +6788,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:44a4950d-8970-46bf-a8af-95163ea1d331", + "_testId": "urn:uuid:0570e9e1-86ba-4c71-9648-3251c848e2d3", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, @@ -6580,19 +6802,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29661, + "_idleStart": 13725, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 364, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6602,11 +6824,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:3993b384-409c-44a0-b06e-96eebd460819", + "_testId": "urn:uuid:37f5c7f6-b3f1-4863-a558-e6a8d41069ad", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, @@ -6616,12 +6838,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29733, + "_idleStart": 14089, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 545, "state": "passed", "speed": "slow" }, @@ -6638,11 +6860,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:cedc0555-6c6b-484d-ba38-116758630dec", + "_testId": "urn:uuid:fc9f5c59-06d9-4b31-8d56-2c60cafbddfb", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, @@ -6652,12 +6874,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29836, + "_idleStart": 14635, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 36, + "duration": 131, "state": "failed", "err": { "generatedMessage": false, @@ -6668,7 +6890,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2orrCdsUD1xbEgLwfgfKfdsEGBnAzjwsBH4Y2F9nuP825kZuyJ4eC7CmJGqwiWvYk5XCRd5mZQ7jerFX3nCJxGPa\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5JDBZHQWaKbY3tsAuyps6LTQFgAabsfRXGT7H64W23nB7G9LDgFCsKoce4RibVsg9XNoEfrWe67i5njKW6M212eo\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3tGAJXtcxVrH2mHS8oF9hjS935ZgKBntFCW77D1QpX6ztfW3CEopzyErYTZApFP3vctEg1kPkLdLJAWhzucwh8mS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2MQFqSHq99hXhPQW9Fz9ToE91HCnbL2ATqYNNG3vaJPSdNhSasTrYWLpk1QZkncgLDywmJKQSnPhoKFzepVFQMqR\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -6692,28 +6914,30 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:06:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z2orrCdsUD1xbEgLwfgfKfdsEGBnAzjwsBH4Y2F9nuP825kZuyJ4eC7CmJGqwiWvYk5XCRd5mZQ7jerFX3nCJxGPa" + "proofValue": "z3tGAJXtcxVrH2mHS8oF9hjS935ZgKBntFCW77D1QpX6ztfW3CEopzyErYTZApFP3vctEg1kPkLdLJAWhzucwh8mS" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:06:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5JDBZHQWaKbY3tsAuyps6LTQFgAabsfRXGT7H64W23nB7G9LDgFCsKoce4RibVsg9XNoEfrWe67i5njKW6M212eo" + "proofValue": "z2MQFqSHq99hXhPQW9Fz9ToE91HCnbL2ATqYNNG3vaJPSdNhSasTrYWLpk1QZkncgLDywmJKQSnPhoKFzepVFQMqR" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -6782,8 +7006,17 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } }, "operator": "doesNotReject" } @@ -6794,7 +7027,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -6805,7 +7038,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -6824,12 +7057,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:55e29eee-0f20-44ef-80a4-7ace771d5a68" + "_testId": "urn:uuid:27ace536-c3ad-4b28-82a3-fd19fe21676d" }, { - "title": "VC Issuer Mock", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ @@ -6846,11 +7079,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:f35fc979-5966-4f9f-b0b8-eb9743d42ee1", + "_testId": "urn:uuid:5822c680-68ba-40f1-b81d-4bda09557da3", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, @@ -6860,12 +7093,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29873, + "_idleStart": 14766, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 595, + "duration": 379, "state": "passed", "speed": "slow" }, @@ -6882,11 +7115,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:547be771-57aa-4807-96d4-083131dcf424", + "_testId": "urn:uuid:ef195d07-71f0-4df8-aa52-6a386e9bef77", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, @@ -6896,12 +7129,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30468, + "_idleStart": 15146, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 45, "state": "failed", "err": { "generatedMessage": false, @@ -6912,7 +7145,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5iuGiUSzh2upa2jpba5u5mfK5kSupdasuxas7E4GBX1wZkgLJCZS456dohhqkX88U1gEhH83FrGWF5vubQVTtjwF\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4TmErrEVqVdEUwaMuywgLrr7fRQSY2y1ZC6nRb7mjhRSB1oMypyqTzzZbuN7PQLDQ7KdqiouNsgKGY8zV2KuQS66\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -6924,18 +7157,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:06:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5iuGiUSzh2upa2jpba5u5mfK5kSupdasuxas7E4GBX1wZkgLJCZS456dohhqkX88U1gEhH83FrGWF5vubQVTtjwF" + "proofValue": "z4TmErrEVqVdEUwaMuywgLrr7fRQSY2y1ZC6nRb7mjhRSB1oMypyqTzzZbuN7PQLDQ7KdqiouNsgKGY8zV2KuQS66" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -7004,7 +7237,7 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", "status": 400 }, "operator": "doesNotReject" @@ -7023,11 +7256,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:214b029b-7f82-46db-a17c-9f8ca18666f9", + "_testId": "urn:uuid:e407d1d8-a25d-42d6-b7a3-03ad1a841d27", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, @@ -7037,19 +7270,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30581, + "_idleStart": 15190, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 718, + "duration": 143, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7059,11 +7292,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:ff881d96-089c-4bfd-ba03-8ee1568e51c6", + "_testId": "urn:uuid:ad14a232-0e58-494b-94f3-0051667a19e2", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, @@ -7073,19 +7306,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31300, + "_idleStart": 15333, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 733, + "duration": 135, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7095,11 +7328,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:ff2885dc-cb30-46ed-8b3a-437834cdb424", + "_testId": "urn:uuid:dccc66f3-87bb-4734-8dcd-272ab3742964", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, @@ -7109,12 +7342,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32033, + "_idleStart": 15469, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1057, + "duration": 196, "state": "passed", "speed": "slow" }, @@ -7131,11 +7364,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:6238003c-433a-4e2d-a2cf-a4c79f40ebb4", + "_testId": "urn:uuid:560191d2-e99c-498c-90bf-9a91e91484d3", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, @@ -7145,12 +7378,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33090, + "_idleStart": 15666, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 334, + "duration": 47, "state": "failed", "err": { "generatedMessage": false, @@ -7161,7 +7394,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3w2FEkSi4anTPfNR7kuXaDHcmH9fe9TRMfxYiT2AnQjwCKXHPAjk6R1wQKXip1nheNZDa7kAkNvg4fo4YbPiPP6C\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Z52Vw8UUs5ZByt3YJkBhQPTbnp2VcEkQQkFKQokFA5aAjdnbouTNH86govrN4wwbENw7pmBNtN5u5Hbu1NgNMe3\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z25Hs4TFPGC4J5K4i5BU7FDT8fnnSzNWajQQ8GgZwkmoZX47eCauPm5tDAsHxZbBdpt7Yv1H5b7uSTZiNSZWhA7je\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5V6pxxut6b1XRB5wjuC6YLZnYxpsbr4hcETaZYrrkqvYjcA1J9PK5FCUeyAcB7pTLk9QW2JsRCNNWnnyDoTz3UH3\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -7185,28 +7418,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:58Z", + "created": "2024-10-20T05:06:01Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z3w2FEkSi4anTPfNR7kuXaDHcmH9fe9TRMfxYiT2AnQjwCKXHPAjk6R1wQKXip1nheNZDa7kAkNvg4fo4YbPiPP6C" + "proofValue": "z25Hs4TFPGC4J5K4i5BU7FDT8fnnSzNWajQQ8GgZwkmoZX47eCauPm5tDAsHxZbBdpt7Yv1H5b7uSTZiNSZWhA7je" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:58Z", + "created": "2024-10-20T05:06:01Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2Z52Vw8UUs5ZByt3YJkBhQPTbnp2VcEkQQkFKQokFA5aAjdnbouTNH86govrN4wwbENw7pmBNtN5u5Hbu1NgNMe3" + "proofValue": "z5V6pxxut6b1XRB5wjuC6YLZnYxpsbr4hcETaZYrrkqvYjcA1J9PK5FCUeyAcB7pTLk9QW2JsRCNNWnnyDoTz3UH3" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -7275,7 +7508,7 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", "status": 400 }, "operator": "doesNotReject" @@ -7287,7 +7520,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -7298,7 +7531,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -7317,177 +7550,15 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "3iMvO7YNXsbMOL_o7sL0b", + "parent": "IfdP2HiKjfxAuEdz1pUKJ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "_testId": "urn:uuid:fb74ec55-e817-49a8-9c38-e63d869e09ff" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:a50dcfb7-7456-4482-99bd-8795b109f99f", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + "_testId": "urn:uuid:723e64bd-5839-4921-bb61-0fe04b4d7c0c" + }, { - "id": "Verifiable credentials MUST include a @context property.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "cells": [ - { - "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", - "ctx": null, - "_testId": "urn:uuid:99c85e1c-1c36-4368-b053-88df1788b62a", - "cell": { - "columnId": "ACA-py", - "rowId": "Verifiable credentials MUST include a @context property." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 6345, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 127, - "state": "failed", - "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "options": { - "type": "Ed25519Signature2020" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } - } - }, + "title": "VC Issuer Mock", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "Verifiable credentials MUST include a @context property.", @@ -7501,11 +7572,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:1c73ac84-97bd-45c1-a718-d602bec2b640", + "_testId": "urn:uuid:33d22de2-3859-46e1-b4bc-44e1581f0862", "cell": { - "columnId": "apicatalog.com", + "columnId": "VC Issuer Mock", "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, @@ -7515,19 +7586,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6833, + "_idleStart": 15713, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 934, + "duration": 363, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "title": "Verifiable presentations MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7537,12 +7608,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:522746a4-1970-4b8c-8bc0-997d16768cea", + "_testId": "urn:uuid:9696366b-0691-447c-9b4b-2891112530cd", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable credentials MUST include a @context property." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, "_eventsCount": 1, @@ -7551,19 +7622,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12665, + "_idleStart": 16076, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 683, - "state": "passed", - "speed": "slow" + "duration": 114, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4XQDbLuqzHNBCRxBMHD5GRdrhkEG8Aa6ELZ4yJn446gS7E8taeNXB5AWaki4CMaAX5zpzLTUT9mR2DAnvBGfwmRx\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:01Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4XQDbLuqzHNBCRxBMHD5GRdrhkEG8Aa6ELZ4yJn446gS7E8taeNXB5AWaki4CMaAX5zpzLTUT9mR2DAnvBGfwmRx" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "title": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n //positive issue test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n assert(Array.isArray(vc['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vc['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.'\n );\n // negative issue test\n await injectOrReject(endpoints,\n './input/credential-missing-base-context-fail-or-inject.json');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7573,33 +7749,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:6f214ae3-fa4b-4844-8498-03ca27685052", + "_testId": "urn:uuid:aac0a15a-bca3-45dd-b48c-25c2ee7956d9", "cell": { - "columnId": "OpSecId", - "rowId": "Verifiable credentials MUST include a @context property." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25559, + "_idleStart": 16191, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 349, + "duration": 487, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7609,33 +7785,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:8ae53575-d95e-4530-92b6-19b1a0655f37", + "_testId": "urn:uuid:65ced3b8-4dc0-40cf-a4c0-374ac726615e", "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable credentials MUST include a @context property." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27063, + "_idleStart": 16679, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 854, + "duration": 321, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7645,33 +7821,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:fca510ee-447e-4054-8999-6223c47d3f59", + "_testId": "urn:uuid:c8df0bae-0381-46ec-883a-55d4998d1d2b", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable credentials MUST include a @context property." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29404, + "_idleStart": 17001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 160, + "duration": 455, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "title": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(\n endpoints.verifyVp(await createLocalVp({\n presentation:\n require('./input/presentation-context-combo1-ok.json')\n })),\n 'Failed to support multiple `@context` URLs in a VP.');\n await assert.doesNotReject(\n endpoints.verifyVp(await createLocalVp({\n presentation:\n require('./input/presentation-context-combo2-ok.json')\n })),\n 'Failed to support objects in the `@context` Array in a VP.');\n // first create a valid VP\n const vp = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n // then inject incorrect `@context` values and test verification\n vp['@context'][1] = 'https://example.com';\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an invalid `@context` URL.');\n vp['@context'][1] = 'https ://not-a-url/contexts/example/v1';\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an invalid `@context` URL.');\n vp['@context'][1] = 123192875;\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7681,68 +7857,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:f35fc979-5966-4f9f-b0b8-eb9743d42ee1", + "_testId": "urn:uuid:68d20e66-c2d2-4da7-84a1-9f0683a71656", "cell": { "columnId": "VC Issuer Mock", - "rowId": "Verifiable credentials MUST include a @context property." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 29873, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 595, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "Verifiable presentations MUST include a @context property.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", - "cells": [ - { - "type": "test", - "title": "Verifiable presentations MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", - "ctx": null, - "_testId": "urn:uuid:c3845697-7ebe-4c05-aa18-e42be35e6728", - "cell": { - "columnId": "ACA-py", - "rowId": "Verifiable presentations MUST include a @context property." + "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6473, + "_idleStart": 17457, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 51, + "duration": 104, "state": "failed", "err": { "generatedMessage": false, @@ -7753,7 +7887,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:31Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z58mKE4TwKr3n4afw4zEzUr8ThGs9ZWT5AHZu6cifxX7VCrYRbVuQKfDXv9ZytD39He8wDi9bubmJaUPDxeCreb8u\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:03Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zoq9cWwHY2ckxACpLSHdecDwXVCmHdRWxRZRTX8xqNt9xUddq52gZoUTVRswubpXrx1d8BXbBMtvt3PS7Kzoi2sg\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:03Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5eaCLtkCQEpNXo25FBrs5G3MD5fe6jcdFoEMtgXfEP1HGbZ3R8EqLVQvuNxo6VfcdBgcj6k6KkzBJjghsqu5Wj4c\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -7763,20 +7897,42 @@ "type": [ "VerifiablePresentation" ], + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:03Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "zoq9cWwHY2ckxACpLSHdecDwXVCmHdRWxRZRTX8xqNt9xUddq52gZoUTVRswubpXrx1d8BXbBMtvt3PS7Kzoi2sg" + } + } + ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:31Z", + "created": "2024-10-20T05:06:03Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z58mKE4TwKr3n4afw4zEzUr8ThGs9ZWT5AHZu6cifxX7VCrYRbVuQKfDXv9ZytD39He8wDi9bubmJaUPDxeCreb8u" + "proofValue": "z5eaCLtkCQEpNXo25FBrs5G3MD5fe6jcdFoEMtgXfEP1HGbZ3R8EqLVQvuNxo6VfcdBgcj6k6KkzBJjghsqu5Wj4c" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -7845,16 +8001,223 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "KV-YECHhWV8dB5nC5iSBO", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "IfdP2HiKjfxAuEdz1pUKJ", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "_testId": "urn:uuid:e7f84985-e8c9-45d4-b9df-a9bf5eedbece" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:f4751e8c-a2f6-4cc9-9a91-84670377a248", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ + { + "id": "Verifiable credentials MUST include a @context property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "cells": [ + { + "type": "test", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "cIc1f8lUZRzyMCg7ouVK4", + "ctx": null, + "_testId": "urn:uuid:f0892e68-ede8-40a7-bdfe-31d2f7d96028", + "cell": { + "columnId": "ACA-py", + "rowId": "Verifiable credentials MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 6396, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 130, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + } }, { "type": "test", - "title": "Verifiable presentations MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7864,12 +8227,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:4da58937-cbac-4a5d-bcc3-61cbdf782de8", + "_testId": "urn:uuid:73397f4a-860b-4006-9158-ca2effafec53", "cell": { "columnId": "apicatalog.com", - "rowId": "Verifiable presentations MUST include a @context property." + "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, "_eventsCount": 1, @@ -7878,19 +8241,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7768, + "_idleStart": 6829, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2101, + "duration": 650, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable presentations MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7900,12 +8263,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:02667600-9916-4784-9f45-22a932849973", + "_testId": "urn:uuid:f7ac61a1-b991-4dec-bd81-ae8ae5c46308", "cell": { "columnId": "Digital Bazaar", - "rowId": "Verifiable presentations MUST include a @context property." + "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, "_eventsCount": 1, @@ -7914,19 +8277,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13349, + "_idleStart": 8880, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 522, + "duration": 480, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable presentations MUST include a @context property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7936,12 +8299,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:303db2fb-adfe-451d-9cac-c8fa0582674e", + "_testId": "urn:uuid:a8a6a2b0-f6e7-4bed-9937-2faa73bb0449", "cell": { "columnId": "OpSecId", - "rowId": "Verifiable presentations MUST include a @context property." + "rowId": "Verifiable credentials MUST include a @context property." }, "_events": {}, "_eventsCount": 1, @@ -7950,15 +8313,223 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25907, + "_idleStart": 11824, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 136, + "duration": 88, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + } + }, + { + "type": "test", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "mIA8xX8LpSIdh7t9_60jm", + "ctx": null, + "_testId": "urn:uuid:ea7aef1d-a6bf-4351-8d23-31c6dbc5837c", + "cell": { + "columnId": "Procivis One Core", + "rowId": "Verifiable credentials MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 12194, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 851, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", + "ctx": null, + "_testId": "urn:uuid:5822c680-68ba-40f1-b81d-4bda09557da3", + "cell": { + "columnId": "SpruceID", + "rowId": "Verifiable credentials MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 14766, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 379, "state": "passed", "speed": "slow" }, + { + "type": "test", + "title": "Verifiable credentials MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n // positive @context test\n const vc = await endpoints.issue(require(\n './input/credential-ok.json'));\n vc.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VC with intact `@context`.');\n // negative @context test\n await injectOrReject(endpoints,\n './input/credential-no-context-fail-or-inject.json');\n\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "KV-YECHhWV8dB5nC5iSBO", + "ctx": null, + "_testId": "urn:uuid:33d22de2-3859-46e1-b4bc-44e1581f0862", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "Verifiable credentials MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 15713, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 363, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "id": "Verifiable presentations MUST include a @context property.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "cells": [ { "type": "test", "title": "Verifiable presentations MUST include a @context property.", @@ -7972,11 +8543,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:72e561ed-75de-4607-a654-75c8afca7138", + "_testId": "urn:uuid:8eead333-9aec-43e9-a92b-e56f036de1d2", "cell": { - "columnId": "Procivis One Core", + "columnId": "ACA-py", "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, @@ -7986,12 +8557,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27918, + "_idleStart": 6528, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 43, "state": "failed", "err": { "generatedMessage": false, @@ -8002,7 +8573,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3Jw3pnsECLv6b4TFgaMvu3bSrgAcDAXHqcM5jrjqQaEGxqhUnZMPHN9VugyggQqQASo95ivEWfxQBWBft7SXRmaa\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z444oFHKyKbJRBQwqWY8tdgE8f2WaoJqRwytt57MXVUnqSgnuDCzttBDR6mnWXhHfDuVQxvVP4Gh6qVb2GQRVJze1\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -8014,20 +8585,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:53Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3Jw3pnsECLv6b4TFgaMvu3bSrgAcDAXHqcM5jrjqQaEGxqhUnZMPHN9VugyggQqQASo95ivEWfxQBWBft7SXRmaa" + "proofValue": "z444oFHKyKbJRBQwqWY8tdgE8f2WaoJqRwytt57MXVUnqSgnuDCzttBDR6mnWXhHfDuVQxvVP4Gh6qVb2GQRVJze1" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -8096,17 +8665,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, "operator": "doesNotReject" } @@ -8124,11 +8684,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:70c2a2e9-d5e4-47d2-b6ff-eeea174ffb9b", + "_testId": "urn:uuid:2c54ce1b-d490-48bd-a3b9-01ec839e1c17", "cell": { - "columnId": "SpruceID", + "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, @@ -8138,12 +8698,84 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29565, + "_idleStart": 7479, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 201, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable presentations MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "XTHkhzfi_VegSMIuxT0hE", + "ctx": null, + "_testId": "urn:uuid:054078be-5aa4-4eeb-8d42-c33a6b377bfc", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "Verifiable presentations MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 9361, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 157, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable presentations MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "msaZYt1YX8xKiUJj1kRaP", + "ctx": null, + "_testId": "urn:uuid:c4b610fd-6701-4b70-8947-485f321f197d", + "cell": { + "columnId": "OpSecId", + "rowId": "Verifiable presentations MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 11913, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -8154,7 +8786,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3UgeDFzrP1G1aUnBAEUFg1Mmm6BKuLFm1Sqvrg5CePUn4nxBxTsJP2p9ioJA6wUo6XcyCtu78WtDZAq9M4Rqhefu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4oK2S24tc4MWykMgY6Xt75maLReddd6y462unwnV5HYXeTe7ZWkyp4wEEW9ktrW6ehh81HLxm3tYsoppd8yDNrL8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -8166,18 +8798,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:05:57Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3UgeDFzrP1G1aUnBAEUFg1Mmm6BKuLFm1Sqvrg5CePUn4nxBxTsJP2p9ioJA6wUo6XcyCtu78WtDZAq9M4Rqhefu" + "proofValue": "z4oK2S24tc4MWykMgY6Xt75maLReddd6y462unwnV5HYXeTe7ZWkyp4wEEW9ktrW6ehh81HLxm3tYsoppd8yDNrL8" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -8246,8 +8878,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -8265,11 +8897,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:547be771-57aa-4807-96d4-083131dcf424", + "_testId": "urn:uuid:646ec771-3500-4537-bf5d-1774fbf477a4", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "Procivis One Core", "rowId": "Verifiable presentations MUST include a @context property." }, "_events": {}, @@ -8279,12 +8911,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30468, + "_idleStart": 13046, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 118, "state": "failed", "err": { "generatedMessage": false, @@ -8295,7 +8927,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5iuGiUSzh2upa2jpba5u5mfK5kSupdasuxas7E4GBX1wZkgLJCZS456dohhqkX88U1gEhH83FrGWF5vubQVTtjwF\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3YxJhuG4GV8jkuzL1yrjEa3nLrzp2RAqDvu3WUkx3PbqccGHATDcpwU6iTdCWQWw9zY5kD3uSVp3sLFhgRJ2Lkph\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -8307,18 +8939,20 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:05:58Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5iuGiUSzh2upa2jpba5u5mfK5kSupdasuxas7E4GBX1wZkgLJCZS456dohhqkX88U1gEhH83FrGWF5vubQVTtjwF" + "proofValue": "z3YxJhuG4GV8jkuzL1yrjEa3nLrzp2RAqDvu3WUkx3PbqccGHATDcpwU6iTdCWQWw9zY5kD3uSVp3sLFhgRJ2Lkph" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -8387,15 +9021,306 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 - }, - "operator": "doesNotReject" - } - } - ] - }, - { + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "Verifiable presentations MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", + "ctx": null, + "_testId": "urn:uuid:ef195d07-71f0-4df8-aa52-6a386e9bef77", + "cell": { + "columnId": "SpruceID", + "rowId": "Verifiable presentations MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 15146, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 45, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4TmErrEVqVdEUwaMuywgLrr7fRQSY2y1ZC6nRb7mjhRSB1oMypyqTzzZbuN7PQLDQ7KdqiouNsgKGY8zV2KuQS66\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:00Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4TmErrEVqVdEUwaMuywgLrr7fRQSY2y1ZC6nRb7mjhRSB1oMypyqTzzZbuN7PQLDQ7KdqiouNsgKGY8zV2KuQS66" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "Verifiable presentations MUST include a @context property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.`;\n const validVp = await createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(validVp),\n `verifier ${name} rejected VP with valid @context.`\n );\n const invalidVp = klona(validVp);\n delete invalidVp['@context'];\n await assert.rejects(endpoints.verifyVp(invalidVp),\n 'Failed to reject a VP with a missing @context.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", + "parent": "KV-YECHhWV8dB5nC5iSBO", + "ctx": null, + "_testId": "urn:uuid:9696366b-0691-447c-9b4b-2891112530cd", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "Verifiable presentations MUST include a @context property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20include%20a%20%40context%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 16076, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 114, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4XQDbLuqzHNBCRxBMHD5GRdrhkEG8Aa6ELZ4yJn446gS7E8taeNXB5AWaki4CMaAX5zpzLTUT9mR2DAnvBGfwmRx\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:01Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4XQDbLuqzHNBCRxBMHD5GRdrhkEG8Aa6ELZ4yJn446gS7E8taeNXB5AWaki4CMaAX5zpzLTUT9mR2DAnvBGfwmRx" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 + }, + "operator": "doesNotReject" + } + } + ] + }, + { "id": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.", "cells": [ @@ -8412,9 +9337,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:c4b67660-31e6-4268-83e9-05f142718421", + "_testId": "urn:uuid:f6f9a5d9-f54a-426e-a712-f9d5cc5e444e", "cell": { "columnId": "ACA-py", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8426,12 +9351,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6524, + "_idleStart": 6571, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "response": {}, @@ -8544,9 +9469,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:09da0f28-d00e-404e-90d5-c47f23fb049f", + "_testId": "urn:uuid:d3a983cb-dff6-4b32-9d04-432f37dd6f9f", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8558,12 +9483,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9868, + "_idleStart": 7680, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 998, + "duration": 321, "state": "passed", "speed": "slow" }, @@ -8580,9 +9505,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:a4b74625-7672-4027-8798-7bb175ed03ce", + "_testId": "urn:uuid:959c11e9-a81a-4ec9-bdb8-2e8f19857037", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8594,12 +9519,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13871, + "_idleStart": 9519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 261, + "duration": 196, "state": "passed", "speed": "slow" }, @@ -8616,9 +9541,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:3d159036-d90a-4d7e-9e5b-726484c22a3b", + "_testId": "urn:uuid:2648a503-d1fa-4c05-a5af-f3532e2bba8c", "cell": { "columnId": "OpSecId", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8630,14 +9555,108 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26045, + "_idleStart": 11940, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 216, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + } }, { "type": "test", @@ -8652,9 +9671,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:d3309290-4517-4dd7-ab59-858de2f0e3cb", + "_testId": "urn:uuid:3f1ccc2e-b40b-4235-bf9a-88fb28617c52", "cell": { "columnId": "Procivis One Core", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8666,12 +9685,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28021, + "_idleStart": 13164, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 519, + "duration": 561, "state": "passed", "speed": "slow" }, @@ -8688,9 +9707,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:b20041f8-f86b-4323-8c89-08574ec64b08", + "_testId": "urn:uuid:e407d1d8-a25d-42d6-b7a3-03ad1a841d27", "cell": { "columnId": "SpruceID", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8702,14 +9721,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29589, + "_idleStart": 15190, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, + "duration": 143, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", @@ -8724,9 +9743,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:214b029b-7f82-46db-a17c-9f8ca18666f9", + "_testId": "urn:uuid:aac0a15a-bca3-45dd-b48c-25c2ee7956d9", "cell": { "columnId": "VC Issuer Mock", "rowId": "Verifiable credentials: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8738,12 +9757,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30581, + "_idleStart": 16191, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 718, + "duration": 487, "state": "passed", "speed": "slow" } @@ -8756,7 +9775,7 @@ { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8766,9 +9785,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:8d09c8e4-0094-4262-9b9e-3dcbff2b902c", + "_testId": "urn:uuid:8a943d1a-ca73-4d9d-90a7-31cc15b5e2a4", "cell": { "columnId": "ACA-py", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8780,19 +9799,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6553, + "_idleStart": 6599, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 207, + "duration": 165, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8802,9 +9821,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:23ed0749-b2de-4a73-92c3-f3ab0a06bcde", + "_testId": "urn:uuid:8d5a5316-b31e-4b83-b5a0-6005bf69d0e4", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8816,19 +9835,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 10867, + "_idleStart": 8001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 506, + "duration": 178, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8838,9 +9857,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:b8a7e2d9-81b0-4bc6-87c4-3458f67a434d", + "_testId": "urn:uuid:240d5bae-3a05-42dd-af83-29f8e6daa6cc", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8852,19 +9871,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14131, + "_idleStart": 9715, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 3124, + "duration": 148, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8874,9 +9893,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:1b0d2f09-43aa-4199-9317-447725ed672f", + "_testId": "urn:uuid:552becac-d431-4a28-a982-beedc2d3ac0a", "cell": { "columnId": "OpSecId", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8888,19 +9907,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26261, + "_idleStart": 11964, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 206, + "duration": 174, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8910,9 +9929,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:b55f28de-05c7-4cac-a248-5d2a4ba0aa4a", + "_testId": "urn:uuid:0570e9e1-86ba-4c71-9648-3251c848e2d3", "cell": { "columnId": "Procivis One Core", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8924,19 +9943,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28540, + "_idleStart": 13725, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 306, + "duration": 364, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8946,9 +9965,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:44a4950d-8970-46bf-a8af-95163ea1d331", + "_testId": "urn:uuid:ad14a232-0e58-494b-94f3-0051667a19e2", "cell": { "columnId": "SpruceID", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8960,19 +9979,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29661, + "_idleStart": 15333, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 135, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n {name: 'HTTPError'},\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20%40context%20property%20MUST%20be%20an%20ordered%20set%20where%20the%20first%20item%20is%20a%20URL%20with%20the%20value%20https%3A//www.w3.org/ns/credentials/v2.`;\n const vpInvalidContextOrder = await createInvalidVp({\n presentation: require('./input/presentation-context-order-fail.json')\n });\n await assert.rejects(endpoints.verifyVp(vpInvalidContextOrder),\n\n 'Failed to reject a VP that has the wrong context order.');\n const vp = createLocalVp({\n presentation: require('./input/presentation-ok.json')\n });\n vp['@context'] = [\n 'https://www.w3.org/ns/credentials/examples/v2',\n 'https://www.w3.org/ns/credentials/v2'\n ];\n await assert.rejects(endpoints.verifyVp(vp),\n 'Failed to reject a VP with unordered @context.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8982,9 +10001,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:ff881d96-089c-4bfd-ba03-8ee1568e51c6", + "_testId": "urn:uuid:65ced3b8-4dc0-40cf-a4c0-374ac726615e", "cell": { "columnId": "VC Issuer Mock", "rowId": "Verifiable presentations: The value of the @context property MUST be an ordered set where the first item is a URL with the value https://www.w3.org/ns/credentials/v2." @@ -8996,12 +10015,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31300, + "_idleStart": 16679, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 733, + "duration": 321, "state": "passed", "speed": "slow" } @@ -9014,7 +10033,7 @@ { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9024,9 +10043,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:6a413df6-1919-49a1-9e76-daf39ac13c23", + "_testId": "urn:uuid:b71d6745-1c26-466b-9123-c3e7d047b805", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9038,7 +10057,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6761, + "_idleStart": 6764, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -9152,7 +10171,7 @@ { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9162,9 +10181,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:93636e87-2f31-4392-acf4-4bb4d578f656", + "_testId": "urn:uuid:ed6937aa-d5a2-4e0e-80f8-17937009da45", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9176,19 +10195,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11374, + "_idleStart": 8179, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1086, + "duration": 504, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9198,9 +10217,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:0eecf1a5-e2dc-4fb1-839b-c6f134da0f5f", + "_testId": "urn:uuid:a70ebc74-f45a-4bf4-8483-d83564d5e313", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9212,19 +10231,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17256, + "_idleStart": 9864, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 718, + "duration": 777, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9234,9 +10253,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:3598943c-03fc-4b0d-aa31-066a05c2de69", + "_testId": "urn:uuid:cdb7c569-51fd-41dd-948a-1810a0ef5b4d", "cell": { "columnId": "OpSecId", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9248,19 +10267,119 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26467, + "_idleStart": 12138, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 234, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://www.w3.org/ns/credentials/examples/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9270,9 +10389,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:e44f24b3-0999-4fca-ad0d-73ef566d2135", + "_testId": "urn:uuid:37f5c7f6-b3f1-4863-a558-e6a8d41069ad", "cell": { "columnId": "Procivis One Core", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9284,19 +10403,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28847, + "_idleStart": 14089, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 451, + "duration": 545, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9306,9 +10425,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:3993b384-409c-44a0-b06e-96eebd460819", + "_testId": "urn:uuid:dccc66f3-87bb-4734-8dcd-272ab3742964", "cell": { "columnId": "SpruceID", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9320,19 +10439,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29733, + "_idleStart": 15469, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 196, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo1-ok.json')),\n 'Failed to support multiple `@context` URLs.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-context-combo2-ok.json')),\n 'Failed to support objects in the `@context` Array.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')),\n\n 'Failed to reject a VC with an invalid `@context` URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')),\n\n 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9342,9 +10461,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:ff2885dc-cb30-46ed-8b3a-437834cdb424", + "_testId": "urn:uuid:c8df0bae-0381-46ec-883a-55d4998d1d2b", "cell": { "columnId": "VC Issuer Mock", "rowId": "Verifiable Credential `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9356,12 +10475,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32033, + "_idleStart": 17001, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1057, + "duration": 455, "state": "passed", "speed": "slow" } @@ -9384,9 +10503,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "kgPdXiwO9NxA1pJWGiozm", + "parent": "cIc1f8lUZRzyMCg7ouVK4", "ctx": null, - "_testId": "urn:uuid:111f0277-17b0-4896-968c-8eac2d31a9eb", + "_testId": "urn:uuid:3d31387b-99ab-4b49-8aed-3f6abb314c4f", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9398,12 +10517,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6789, + "_idleStart": 6792, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 44, + "duration": 36, "state": "failed", "err": { "generatedMessage": false, @@ -9414,7 +10533,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:32Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zABxu6yTH6E7XTCixT32oWSMPiSbE54eN834XroPXBRdQHrDhacaKtiXT3vn4fHxzYyPiyupMLwpWkkh5qM6Kn5r\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:32Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z53ScymYufsvoZVAaEoXYxugFjUPc7TeieoRSpczKzh4HbsQhjipDRxuu3CabxyPcvruPiMy2sU1zACBr1WMH93SU\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4qqAc9zzvSNBDBYiDrEQS7cHc322qeHHLHAwazdXsdg1HDpKjzSByjfAvkhg7W1fxdnfAGbUJ3TpNWGEWtqEFwAc\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5kmaEhYMz57K934GXbYmkgmVGbpQwV1zGGJskTefY9nvG4CkS6YoF6TUKcSgmJbhL8EmBWvMNRk9AWHwPfFeiLQm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -9438,28 +10557,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:32Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "zABxu6yTH6E7XTCixT32oWSMPiSbE54eN834XroPXBRdQHrDhacaKtiXT3vn4fHxzYyPiyupMLwpWkkh5qM6Kn5r" + "proofValue": "z4qqAc9zzvSNBDBYiDrEQS7cHc322qeHHLHAwazdXsdg1HDpKjzSByjfAvkhg7W1fxdnfAGbUJ3TpNWGEWtqEFwAc" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:32Z", + "created": "2024-10-20T05:05:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z53ScymYufsvoZVAaEoXYxugFjUPc7TeieoRSpczKzh4HbsQhjipDRxuu3CabxyPcvruPiMy2sU1zACBr1WMH93SU" + "proofValue": "z5kmaEhYMz57K934GXbYmkgmVGbpQwV1zGGJskTefY9nvG4CkS6YoF6TUKcSgmJbhL8EmBWvMNRk9AWHwPfFeiLQm" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -9547,9 +10666,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "SYPhGwZdH7H2CbZJ8NzCs", + "parent": "hZ097OGBdy_5lmRwnsn7l", "ctx": null, - "_testId": "urn:uuid:af9b9baf-f9d8-457c-80d8-bd7c7a1b170c", + "_testId": "urn:uuid:c4f8873a-b898-42ba-8154-32f93188248d", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9561,12 +10680,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12461, + "_idleStart": 8683, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 204, + "duration": 196, "state": "failed", "err": { "generatedMessage": false, @@ -9577,7 +10696,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3qipm5F3AJhtgfHhPMmo7vTuHhjS2fQzBvvb2ddpo7zop2reWFVcSgtxCXstWQfaRw15mV2pFknLs2MGF4wUeqBE\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Z1MvSL3fVStDsyNT4CLi4wy6iaEfGBJEZPtqNbTToWxP8NvdxNeYFnkTLuJUyGobEH2kHxwswTm2CbSQnJZSkjj\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zpyK5VTqWmQmns57Gx2kHAHWmFCrfSGgNPQyrthXwrpXecx37qpoQDLrotHRpGcEqmuD9KatnBLDGgxXtajnPAec\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z61iju9TducXvgYrCcwoAodvTZmaGjqmivfwJRLmeCTiqFKijNjyW6ivA8FxwgQ2QopfQjoEy9P34MZM5RjkUf9Nj\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -9601,28 +10720,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:37Z", + "created": "2024-10-20T05:05:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z3qipm5F3AJhtgfHhPMmo7vTuHhjS2fQzBvvb2ddpo7zop2reWFVcSgtxCXstWQfaRw15mV2pFknLs2MGF4wUeqBE" + "proofValue": "zpyK5VTqWmQmns57Gx2kHAHWmFCrfSGgNPQyrthXwrpXecx37qpoQDLrotHRpGcEqmuD9KatnBLDGgxXtajnPAec" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:37Z", + "created": "2024-10-20T05:05:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2Z1MvSL3fVStDsyNT4CLi4wy6iaEfGBJEZPtqNbTToWxP8NvdxNeYFnkTLuJUyGobEH2kHxwswTm2CbSQnJZSkjj" + "proofValue": "z61iju9TducXvgYrCcwoAodvTZmaGjqmivfwJRLmeCTiqFKijNjyW6ivA8FxwgQ2QopfQjoEy9P34MZM5RjkUf9Nj" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -9718,9 +10837,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "XgsBFZFWcCQDyglxhxvfa", + "parent": "XTHkhzfi_VegSMIuxT0hE", "ctx": null, - "_testId": "urn:uuid:e123aa9b-4b8f-4c68-ab1e-c143cce2a31e", + "_testId": "urn:uuid:4dea7d76-1d6a-4937-b534-18a537206b91", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9732,12 +10851,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17974, + "_idleStart": 10642, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 7584, + "duration": 1181, "state": "passed", "speed": "slow" }, @@ -9754,9 +10873,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "13r3LPKMHrqIRrqstpB7l", + "parent": "msaZYt1YX8xKiUJj1kRaP", "ctx": null, - "_testId": "urn:uuid:c108677f-272b-4238-aa62-282658af4588", + "_testId": "urn:uuid:34a4620d-45c2-4f51-8de6-e921b3fabf8a", "cell": { "columnId": "OpSecId", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9768,14 +10887,141 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26702, + "_idleStart": 12163, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 362, - "state": "passed", - "speed": "slow" + "duration": 31, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2eqKwyGZmVUGToRzmiFbGBJ7qpNdmDazCVNUy2nKa97MK8BCymTupkay62xDV4XM1C2HFA2GZUp1QQgk87rHdBnr\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:05:57Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z656DheWL8QV4YjPJ9FRs9T9A4Z6EeFTi1FrvCU4oazHUNSHTj4vm4u4CxXn8FbH1uydZyv3PHwiTxQPsj6SdetqG\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:05:57Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z2eqKwyGZmVUGToRzmiFbGBJ7qpNdmDazCVNUy2nKa97MK8BCymTupkay62xDV4XM1C2HFA2GZUp1QQgk87rHdBnr" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:05:57Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z656DheWL8QV4YjPJ9FRs9T9A4Z6EeFTi1FrvCU4oazHUNSHTj4vm4u4CxXn8FbH1uydZyv3PHwiTxQPsj6SdetqG" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -9790,9 +11036,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "9rxvAJdEFI7bjC695zHPH", + "parent": "mIA8xX8LpSIdh7t9_60jm", "ctx": null, - "_testId": "urn:uuid:b5690815-97a2-4663-a602-dfa9e35415f2", + "_testId": "urn:uuid:fc9f5c59-06d9-4b31-8d56-2c60cafbddfb", "cell": { "columnId": "Procivis One Core", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9804,12 +11050,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29298, + "_idleStart": 14635, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, + "duration": 131, "state": "failed", "err": { "generatedMessage": false, @@ -9820,7 +11066,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2vG8zeMVHQYCDBjkwYegAhYze3icx3pVrKSXzd3hCzLXptavJrqYaQm5JPRf1zRAZi1UkEwbcj5u9vk2dtTAq7cq\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pNiW9zzVQct2toqSUoSrCHbTbTMnWYY8BffgT6cz1cVMzpujwZXuD17FrZUE7LydeB3wkf1UmpYbC532BG8TqVK\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3tGAJXtcxVrH2mHS8oF9hjS935ZgKBntFCW77D1QpX6ztfW3CEopzyErYTZApFP3vctEg1kPkLdLJAWhzucwh8mS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2MQFqSHq99hXhPQW9Fz9ToE91HCnbL2ATqYNNG3vaJPSdNhSasTrYWLpk1QZkncgLDywmJKQSnPhoKFzepVFQMqR\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -9844,28 +11090,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:06:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z2vG8zeMVHQYCDBjkwYegAhYze3icx3pVrKSXzd3hCzLXptavJrqYaQm5JPRf1zRAZi1UkEwbcj5u9vk2dtTAq7cq" + "proofValue": "z3tGAJXtcxVrH2mHS8oF9hjS935ZgKBntFCW77D1QpX6ztfW3CEopzyErYTZApFP3vctEg1kPkLdLJAWhzucwh8mS" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:54Z", + "created": "2024-10-20T05:06:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pNiW9zzVQct2toqSUoSrCHbTbTMnWYY8BffgT6cz1cVMzpujwZXuD17FrZUE7LydeB3wkf1UmpYbC532BG8TqVK" + "proofValue": "z2MQFqSHq99hXhPQW9Fz9ToE91HCnbL2ATqYNNG3vaJPSdNhSasTrYWLpk1QZkncgLDywmJKQSnPhoKFzepVFQMqR" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "credentialFormat": "JSON_LD_CLASSIC", "checks": [] } @@ -9964,9 +11210,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "6w0gNb01fS4aYsfHBnxs8", + "parent": "QEUz5Ie1y0hSdu3qdoeyf", "ctx": null, - "_testId": "urn:uuid:cedc0555-6c6b-484d-ba38-116758630dec", + "_testId": "urn:uuid:560191d2-e99c-498c-90bf-9a91e91484d3", "cell": { "columnId": "SpruceID", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -9978,12 +11224,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29836, + "_idleStart": 15666, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 36, + "duration": 47, "state": "failed", "err": { "generatedMessage": false, @@ -9994,7 +11240,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2orrCdsUD1xbEgLwfgfKfdsEGBnAzjwsBH4Y2F9nuP825kZuyJ4eC7CmJGqwiWvYk5XCRd5mZQ7jerFX3nCJxGPa\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:55Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5JDBZHQWaKbY3tsAuyps6LTQFgAabsfRXGT7H64W23nB7G9LDgFCsKoce4RibVsg9XNoEfrWe67i5njKW6M212eo\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z25Hs4TFPGC4J5K4i5BU7FDT8fnnSzNWajQQ8GgZwkmoZX47eCauPm5tDAsHxZbBdpt7Yv1H5b7uSTZiNSZWhA7je\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:01Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5V6pxxut6b1XRB5wjuC6YLZnYxpsbr4hcETaZYrrkqvYjcA1J9PK5FCUeyAcB7pTLk9QW2JsRCNNWnnyDoTz3UH3\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -10018,28 +11264,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:06:01Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z2orrCdsUD1xbEgLwfgfKfdsEGBnAzjwsBH4Y2F9nuP825kZuyJ4eC7CmJGqwiWvYk5XCRd5mZQ7jerFX3nCJxGPa" + "proofValue": "z25Hs4TFPGC4J5K4i5BU7FDT8fnnSzNWajQQ8GgZwkmoZX47eCauPm5tDAsHxZbBdpt7Yv1H5b7uSTZiNSZWhA7je" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:55Z", + "created": "2024-10-20T05:06:01Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5JDBZHQWaKbY3tsAuyps6LTQFgAabsfRXGT7H64W23nB7G9LDgFCsKoce4RibVsg9XNoEfrWe67i5njKW6M212eo" + "proofValue": "z5V6pxxut6b1XRB5wjuC6YLZnYxpsbr4hcETaZYrrkqvYjcA1J9PK5FCUeyAcB7pTLk9QW2JsRCNNWnnyDoTz3UH3" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -10127,9 +11373,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-3-contexts.js", - "parent": "3WHx7T8A-iVhk0u-7HPqT", + "parent": "KV-YECHhWV8dB5nC5iSBO", "ctx": null, - "_testId": "urn:uuid:6238003c-433a-4e2d-a2cf-a4c79f40ebb4", + "_testId": "urn:uuid:68d20e66-c2d2-4da7-84a1-9f0683a71656", "cell": { "columnId": "VC Issuer Mock", "rowId": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"" @@ -10141,12 +11387,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33090, + "_idleStart": 17457, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 334, + "duration": 104, "state": "failed", "err": { "generatedMessage": false, @@ -10157,7 +11403,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3w2FEkSi4anTPfNR7kuXaDHcmH9fe9TRMfxYiT2AnQjwCKXHPAjk6R1wQKXip1nheNZDa7kAkNvg4fo4YbPiPP6C\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:06:58Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Z52Vw8UUs5ZByt3YJkBhQPTbnp2VcEkQQkFKQokFA5aAjdnbouTNH86govrN4wwbENw7pmBNtN5u5Hbu1NgNMe3\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:03Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zoq9cWwHY2ckxACpLSHdecDwXVCmHdRWxRZRTX8xqNt9xUddq52gZoUTVRswubpXrx1d8BXbBMtvt3PS7Kzoi2sg\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:03Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5eaCLtkCQEpNXo25FBrs5G3MD5fe6jcdFoEMtgXfEP1HGbZ3R8EqLVQvuNxo6VfcdBgcj6k6KkzBJjghsqu5Wj4c\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -10181,28 +11427,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:58Z", + "created": "2024-10-20T05:06:03Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z3w2FEkSi4anTPfNR7kuXaDHcmH9fe9TRMfxYiT2AnQjwCKXHPAjk6R1wQKXip1nheNZDa7kAkNvg4fo4YbPiPP6C" + "proofValue": "zoq9cWwHY2ckxACpLSHdecDwXVCmHdRWxRZRTX8xqNt9xUddq52gZoUTVRswubpXrx1d8BXbBMtvt3PS7Kzoi2sg" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:06:58Z", + "created": "2024-10-20T05:06:03Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2Z52Vw8UUs5ZByt3YJkBhQPTbnp2VcEkQQkFKQokFA5aAjdnbouTNH86govrN4wwbENw7pmBNtN5u5Hbu1NgNMe3" + "proofValue": "z5eaCLtkCQEpNXo25FBrs5G3MD5fe6jcdFoEMtgXfEP1HGbZ3R8EqLVQvuNxo6VfcdBgcj6k6KkzBJjghsqu5Wj4c" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -10293,7 +11539,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10303,9 +11549,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "QRQUAqTzn73cf3euJRv60", + "parent": "kRTLDDDLnkAq_R3UZrvlG", "ctx": null, - "_testId": "urn:uuid:d9fba192-3c1d-41a3-b412-d8732476e03a", + "_testId": "urn:uuid:e5a96616-556a-4357-a6f5-4b914c77b6e0", "cell": { "columnId": "ACA-py", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10317,12 +11563,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33425, + "_idleStart": 17562, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 141, + "duration": 136, "state": "failed", "err": { "generatedMessage": false, @@ -10444,7 +11690,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "QRQUAqTzn73cf3euJRv60", + "parent": "kRTLDDDLnkAq_R3UZrvlG", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10463,9 +11709,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:aa90c448-3573-41ec-aa63-c76f62ffeccf" + "_testId": "urn:uuid:f6ff8149-bfd9-40b7-b6ac-b19e70d84152" }, { "title": "apicatalog.com", @@ -10475,7 +11721,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10485,9 +11731,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "tCyqo66sw8yUfNCmJ4Uno", + "parent": "Oj-xS1LLZ0p9AIdxER79r", "ctx": null, - "_testId": "urn:uuid:145e4f1a-479d-412e-938e-3d7ac3e25efb", + "_testId": "urn:uuid:0e81466c-585b-4a61-950d-5b3378cf2db7", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10499,12 +11745,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33567, + "_idleStart": 17699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1255, + "duration": 1280, "state": "passed", "speed": "slow" } @@ -10525,13 +11771,13 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "tCyqo66sw8yUfNCmJ4Uno", + "parent": "Oj-xS1LLZ0p9AIdxER79r", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "_error": null } ], @@ -10544,9 +11790,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:0cb412f5-0926-49e2-8bab-b25d231b778b" + "_testId": "urn:uuid:0d63d1b3-a458-4adb-bc42-38a9b810ae93" }, { "title": "Digital Bazaar", @@ -10556,7 +11802,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10566,9 +11812,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "tuFCo8hWRgGpeUdgS_lpK", + "parent": "rxIR8u8xxAgTp17J-NTwM", "ctx": null, - "_testId": "urn:uuid:05934519-3d69-4def-beb9-b09b8aff47ac", + "_testId": "urn:uuid:9e76c3d2-7227-4395-8fa1-ad0e1ba53a02", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10580,12 +11826,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34823, + "_idleStart": 18980, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1083, + "duration": 1645, "state": "passed", "speed": "slow" } @@ -10606,7 +11852,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "tuFCo8hWRgGpeUdgS_lpK", + "parent": "rxIR8u8xxAgTp17J-NTwM", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10625,9 +11871,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:94888f8d-ccf0-46ae-aa65-0f7bf60a60df" + "_testId": "urn:uuid:d51748dc-81c3-4d59-abdc-813f3c2f9b61" }, { "title": "OpSecId", @@ -10637,7 +11883,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10647,9 +11893,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "--KxTg4o95ooBTEBg0qCX", + "parent": "-MVdGCTw5wnQGcqbRMypK", "ctx": null, - "_testId": "urn:uuid:9d75aabe-7f8a-44b9-8689-fc903e1acdcc", + "_testId": "urn:uuid:f32264fc-eb02-4356-b5d3-0df27cdd0cc7", "cell": { "columnId": "OpSecId", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10661,12 +11907,192 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 35907, + "_idleStart": 20626, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 721, + "duration": 84, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "-MVdGCTw5wnQGcqbRMypK", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 1, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "EZ2yIFhiHz8clnl8tMDDe", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", + "_testId": "urn:uuid:84fc39d9-c1c1-4024-8af0-8218ffc6932c" + }, + { + "title": "Procivis One Core", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", + "parent": "W1YUOrfM544Qv6yDGWvkF", + "ctx": null, + "_testId": "urn:uuid:26a06b01-94c8-4ab7-a14c-60271bb22c4f", + "cell": { + "columnId": "Procivis One Core", + "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 20710, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1408, "state": "passed", "speed": "slow" } @@ -10676,7 +12102,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -10687,7 +12113,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "--KxTg4o95ooBTEBg0qCX", + "parent": "W1YUOrfM544Qv6yDGWvkF", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10706,90 +12132,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:7586c224-3fa2-48f2-81e9-45a1a6a91bb7" - }, - { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "Hv89_huusQjbAuAHcRs0K", - "ctx": null, - "_testId": "urn:uuid:630be229-9632-4591-ad69-b89e28a02462", - "cell": { - "columnId": "Procivis One Core", - "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 36628, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1273, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "Hv89_huusQjbAuAHcRs0K", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:ff6a8c9f-31c4-4621-be88-83b29e64e330" + "_testId": "urn:uuid:dfdf0a3e-858f-42c7-8ac7-12d64424ca63" }, { "title": "SpruceID", @@ -10799,7 +12144,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10809,9 +12154,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "VViRnuM-qyHAe4OURxxv-", + "parent": "QXeF9-4oS6r41q51uwL3X", "ctx": null, - "_testId": "urn:uuid:ea158d2f-d4ec-4c0b-a0cb-60646c7845f3", + "_testId": "urn:uuid:0b1f0b5a-22c0-40cb-a50f-b648d2be52a5", "cell": { "columnId": "SpruceID", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10823,12 +12168,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37902, + "_idleStart": 22118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 251, + "duration": 392, "state": "passed", "speed": "slow" } @@ -10849,7 +12194,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "VViRnuM-qyHAe4OURxxv-", + "parent": "QXeF9-4oS6r41q51uwL3X", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10868,9 +12213,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:99633036-7a3d-48bc-afc9-14ef6f8cbb18" + "_testId": "urn:uuid:3bc5853a-babe-4350-bef7-27778e761d5b" }, { "title": "VC Issuer Mock", @@ -10880,7 +12225,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10890,9 +12235,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "0z9Unnm4TeXATAC6DQt72", + "parent": "dBtl_1hflRDorq65dbNnV", "ctx": null, - "_testId": "urn:uuid:ed700244-57b0-4c3c-b461-c160b33dbab6", + "_testId": "urn:uuid:d8db7405-e004-4b50-a8ba-ab32c2879ddd", "cell": { "columnId": "VC Issuer Mock", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -10904,12 +12249,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38153, + "_idleStart": 22511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 961, + "duration": 844, "state": "passed", "speed": "slow" } @@ -10930,7 +12275,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "0z9Unnm4TeXATAC6DQt72", + "parent": "dBtl_1hflRDorq65dbNnV", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10949,9 +12294,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "trQoLeM_jLFAMWrbYFHQm", + "parent": "EZ2yIFhiHz8clnl8tMDDe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "_testId": "urn:uuid:afed7144-ba9f-4313-888f-e740caa73aaa" + "_testId": "urn:uuid:1aa85fbf-db52-45c7-8275-2f38f0d06790" } ], "root": false, @@ -10967,13 +12312,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:3ed12068-97cd-4bc3-9151-183240254bab", + "_testId": "urn:uuid:aa601e2f-5dac-451d-a0ae-e5e62fce2ccd", "columns": [ "ACA-py", "apicatalog.com", @@ -10991,7 +12336,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11001,9 +12346,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "QRQUAqTzn73cf3euJRv60", + "parent": "kRTLDDDLnkAq_R3UZrvlG", "ctx": null, - "_testId": "urn:uuid:d9fba192-3c1d-41a3-b412-d8732476e03a", + "_testId": "urn:uuid:e5a96616-556a-4357-a6f5-4b914c77b6e0", "cell": { "columnId": "ACA-py", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11015,12 +12360,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33425, + "_idleStart": 17562, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 141, + "duration": 136, "state": "failed", "err": { "generatedMessage": false, @@ -11128,7 +12473,7 @@ { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11138,9 +12483,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "tCyqo66sw8yUfNCmJ4Uno", + "parent": "Oj-xS1LLZ0p9AIdxER79r", "ctx": null, - "_testId": "urn:uuid:145e4f1a-479d-412e-938e-3d7ac3e25efb", + "_testId": "urn:uuid:0e81466c-585b-4a61-950d-5b3378cf2db7", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11152,19 +12497,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33567, + "_idleStart": 17699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1255, + "duration": 1280, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11174,9 +12519,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "tuFCo8hWRgGpeUdgS_lpK", + "parent": "rxIR8u8xxAgTp17J-NTwM", "ctx": null, - "_testId": "urn:uuid:05934519-3d69-4def-beb9-b09b8aff47ac", + "_testId": "urn:uuid:9e76c3d2-7227-4395-8fa1-ad0e1ba53a02", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11188,19 +12533,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34823, + "_idleStart": 18980, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1083, + "duration": 1645, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11210,9 +12555,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "--KxTg4o95ooBTEBg0qCX", + "parent": "-MVdGCTw5wnQGcqbRMypK", "ctx": null, - "_testId": "urn:uuid:9d75aabe-7f8a-44b9-8689-fc903e1acdcc", + "_testId": "urn:uuid:f32264fc-eb02-4356-b5d3-0df27cdd0cc7", "cell": { "columnId": "OpSecId", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11224,19 +12569,118 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 35907, + "_idleStart": 20626, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 721, - "state": "passed", - "speed": "slow" + "duration": 84, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11246,9 +12690,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "Hv89_huusQjbAuAHcRs0K", + "parent": "W1YUOrfM544Qv6yDGWvkF", "ctx": null, - "_testId": "urn:uuid:630be229-9632-4591-ad69-b89e28a02462", + "_testId": "urn:uuid:26a06b01-94c8-4ab7-a14c-60271bb22c4f", "cell": { "columnId": "Procivis One Core", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11260,19 +12704,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 36628, + "_idleStart": 20710, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1273, + "duration": 1408, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11282,9 +12726,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "VViRnuM-qyHAe4OURxxv-", + "parent": "QXeF9-4oS6r41q51uwL3X", "ctx": null, - "_testId": "urn:uuid:ea158d2f-d4ec-4c0b-a0cb-60646c7845f3", + "_testId": "urn:uuid:0b1f0b5a-22c0-40cb-a50f-b648d2be52a5", "cell": { "columnId": "SpruceID", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11296,19 +12740,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37902, + "_idleStart": 22118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 251, + "duration": 392, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a credential with an invalid identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20present%2C%20the%20value%20of%20the%20id%20property%20MUST%20be%20a%20single%20URL%2C%20which%20MAY%20be%20dereferenceable.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-id-other-ok.json')),\n 'Failed to accept a VC with a DID credentialSubject identifier.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')),\n\n 'Failed to reject a credential with a `null` identifier.');\n\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-single-ok.json')),\n 'Failed to accept a VC with a valid identifier.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-id-subject-single-ok.json')),\n 'Failed to accept a VC with a valid credentialSubject identifier');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')),\n\n 'Failed to reject a VC with multiple `id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')),\n\n 'Failed to reject a VC with multiple credentialSubject identifiers.');\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')),\n\n 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11318,9 +12762,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-4-identifiers.js", - "parent": "0z9Unnm4TeXATAC6DQt72", + "parent": "dBtl_1hflRDorq65dbNnV", "ctx": null, - "_testId": "urn:uuid:ed700244-57b0-4c3c-b461-c160b33dbab6", + "_testId": "urn:uuid:d8db7405-e004-4b50-a8ba-ab32c2879ddd", "cell": { "columnId": "VC Issuer Mock", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -11332,12 +12776,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38153, + "_idleStart": 22511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 961, + "duration": 844, "state": "passed", "speed": "slow" } @@ -11357,7 +12801,7 @@ { "type": "test", "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11367,9 +12811,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:2d3cc5f6-5956-42a7-a05b-9ef20f49c637", + "_testId": "urn:uuid:403ad4d4-4d93-4c91-9344-9b4e0ca3fd53", "cell": { "columnId": "ACA-py", "rowId": "Verifiable credentials MUST contain a type property with an associated value." @@ -11381,19 +12825,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39115, + "_idleStart": 23356, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 159, + "duration": 97, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11403,9 +12847,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:aa2522c0-9087-4974-9067-ac54f07bc442", + "_testId": "urn:uuid:1c71fa05-6e3d-402e-a19f-1f420ce72cb8", "cell": { "columnId": "ACA-py", "rowId": "Verifiable presentations MUST contain a type property with an associated value." @@ -11417,19 +12861,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39275, + "_idleStart": 23453, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 34, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11439,9 +12883,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:ecb97d25-a476-4283-9f3a-3701e2efe89d", + "_testId": "urn:uuid:8bd7eae7-668e-4655-bb0f-cf026ca87ffe", "cell": { "columnId": "ACA-py", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." @@ -11453,12 +12897,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39304, + "_idleStart": 23488, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -11577,9 +13021,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:8ac16382-61d2-4ebd-9227-a9be7d3c7239", + "_testId": "urn:uuid:0026f9e6-e2c6-4abb-9f46-5be5cc7368d4", "cell": { "columnId": "ACA-py", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -11591,12 +13035,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39332, + "_idleStart": 23519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -11707,7 +13151,7 @@ { "type": "test", "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11717,9 +13161,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:3ffc875a-b10d-4104-8ca5-82929ee72b34", + "_testId": "urn:uuid:644e39fe-5295-4653-90c1-f1919c81f14c", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Credential objects MUST have a type specified." @@ -11731,7 +13175,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39360, + "_idleStart": 23551, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11846,7 +13290,7 @@ { "type": "test", "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11856,9 +13300,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:b5c53ebe-70a6-4401-affb-6d2b1c080862", + "_testId": "urn:uuid:c2f77679-86dd-4b66-b11d-2af040c5062c", "cell": { "columnId": "ACA-py", "rowId": "Verifiable Presentation objects MUST have a type specified." @@ -11870,12 +13314,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39389, + "_idleStart": 23580, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 51, + "duration": 42, "state": "failed", "err": { "generatedMessage": false, @@ -11886,7 +13330,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2viePpACUASXePSuezSZdqpHDBQLasaPerU3jGRyv9a1oQr78o7mo26hkBaW5Pv2LtUiTZ1XXGZkbDcMDpjV2EB8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:09Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Ge8mckJoJSYcmME13D4hUaRan9noCuekGWTuUh1eWa4SGRdaCTVVf9DxdhbDkSxUY3Dg8XDb3EXBJ4K3H9uSp25\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -11902,18 +13346,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:04Z", + "created": "2024-10-20T05:06:09Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2viePpACUASXePSuezSZdqpHDBQLasaPerU3jGRyv9a1oQr78o7mo26hkBaW5Pv2LtUiTZ1XXGZkbDcMDpjV2EB8" + "proofValue": "z2Ge8mckJoJSYcmME13D4hUaRan9noCuekGWTuUh1eWa4SGRdaCTVVf9DxdhbDkSxUY3Dg8XDb3EXBJ4K3H9uSp25" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -11991,7 +13435,7 @@ { "type": "test", "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12001,9 +13445,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:9e4817a1-86f5-41b7-9d20-418563d5faa0", + "_testId": "urn:uuid:501baaca-ab92-41c1-9eed-ce0d3cc39ca5", "cell": { "columnId": "ACA-py", "rowId": "`credentialStatus` objects MUST have a type specified." @@ -12015,12 +13459,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39440, + "_idleStart": 23623, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 33, "state": "failed", "err": { "generatedMessage": false, @@ -12135,7 +13579,7 @@ { "type": "test", "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12145,9 +13589,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:c7b85fd7-4b93-478c-9af2-d352de00a590", + "_testId": "urn:uuid:24cd9693-e547-4c9e-8f8c-c5b8385f95da", "cell": { "columnId": "ACA-py", "rowId": "`termsOfUse` objects MUST have a type specified." @@ -12159,12 +13603,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39470, + "_idleStart": 23656, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -12278,7 +13722,7 @@ { "type": "test", "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12288,9 +13732,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:b29a7402-497a-48c6-bea4-9cd5cc7759e3", + "_testId": "urn:uuid:49e628df-ec9b-4cb9-b2f5-92e8641a9fb4", "cell": { "columnId": "ACA-py", "rowId": "`evidence` objects MUST have a type specified." @@ -12302,12 +13746,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39499, + "_idleStart": 23684, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -12421,7 +13865,7 @@ { "type": "test", "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12431,9 +13875,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:c33c340f-93b0-449e-93a2-ca8a94ef8b22", + "_testId": "urn:uuid:acaea975-d585-4d4f-ad87-b262352b653b", "cell": { "columnId": "ACA-py", "rowId": "`refreshService` objects MUST have a type specified." @@ -12445,12 +13889,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39528, + "_idleStart": 23711, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -12565,7 +14009,7 @@ { "type": "test", "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12575,9 +14019,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:5a3af37a-beb8-48d7-9676-591fac5dbcd9", + "_testId": "urn:uuid:b30c91a8-578f-44e1-a058-c44101229c13", "cell": { "columnId": "ACA-py", "rowId": "`credentialSchema` objects MUST have a type specified." @@ -12589,12 +14033,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39558, + "_idleStart": 23739, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -12723,7 +14167,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -12742,9 +14186,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", + "parent": "6RO9JPtMn7zrQ6DhyLoEh", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:1fbf33b2-02ab-45bb-956a-283276fd313e" + "_testId": "urn:uuid:1d198ccf-1753-4c53-b942-223a89737835" }, { "title": "apicatalog.com", @@ -12754,7 +14198,7 @@ { "type": "test", "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12764,9 +14208,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:baaf055c-b8a5-42bc-9c08-5f273ffe8ffa", + "_testId": "urn:uuid:863de563-9947-4e67-bed9-28ca0de182ba", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials MUST contain a type property with an associated value." @@ -12778,19 +14222,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39588, + "_idleStart": 23767, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 181, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12800,9 +14244,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:32346b89-faeb-417e-ac6c-61d4f27e31e4", + "_testId": "urn:uuid:ac8e7591-ce01-4516-b42b-54982f01a812", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST contain a type property with an associated value." @@ -12814,19 +14258,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39769, + "_idleStart": 23825, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 26, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12836,9 +14280,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:b85100da-c963-48ce-9518-5bc411b1e857", + "_testId": "urn:uuid:2aea25a5-5b6f-4002-9304-6e7b92d49297", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." @@ -12850,19 +14294,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39860, + "_idleStart": 23851, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 924, + "duration": 935, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -12879,9 +14320,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:0e9a0bfb-96ea-4064-8944-703d65426e76", + "_testId": "urn:uuid:663c0f1e-e6ae-472f-8f85-3f4db9f20a49", "cell": { "columnId": "apicatalog.com", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -12893,19 +14334,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40785, + "_idleStart": 24786, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 480, + "duration": 394, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12915,9 +14356,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:d3ae9a3d-cbfd-4516-a25e-e56d34bf0913", + "_testId": "urn:uuid:1af50e39-4cce-4a24-b256-b9e23651028e", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Credential objects MUST have a type specified." @@ -12929,19 +14370,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41266, + "_idleStart": 25180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 353, + "duration": 202, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12951,9 +14392,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:9e56f091-28ab-45e5-98db-37ac5e6eb051", + "_testId": "urn:uuid:4184db14-6b02-4147-80a8-392a85bf8883", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable Presentation objects MUST have a type specified." @@ -12965,19 +14406,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41620, + "_idleStart": 25383, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, + "duration": 97, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12987,9 +14428,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:8775975b-5538-4419-8ef2-16ddfca24e0d", + "_testId": "urn:uuid:96d818fe-de03-433b-8dcf-7acfbb921d6f", "cell": { "columnId": "apicatalog.com", "rowId": "`credentialStatus` objects MUST have a type specified." @@ -13001,26 +14442,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41737, + "_idleStart": 25480, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 346, + "duration": 399, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13030,9 +14468,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:ceb032f5-8f5e-4129-a1db-afb90689f8fd", + "_testId": "urn:uuid:0abfc297-bda8-4899-a200-82f8fbb4924d", "cell": { "columnId": "apicatalog.com", "rowId": "`termsOfUse` objects MUST have a type specified." @@ -13044,26 +14482,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42084, + "_idleStart": 25879, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 479, + "duration": 304, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13073,9 +14508,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:81920032-fec7-4515-b36b-a9db90ee98d3", + "_testId": "urn:uuid:62c25ed3-9e26-49fe-99f9-7b56d08cfb80", "cell": { "columnId": "apicatalog.com", "rowId": "`evidence` objects MUST have a type specified." @@ -13087,26 +14522,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42563, + "_idleStart": 26183, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 504, + "duration": 399, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13116,9 +14548,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:f26a93ed-2ae6-45e1-b636-144a83efd761", + "_testId": "urn:uuid:22105610-7350-4e0a-b978-6a0f5fb72c71", "cell": { "columnId": "apicatalog.com", "rowId": "`refreshService` objects MUST have a type specified." @@ -13130,26 +14562,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43068, + "_idleStart": 26582, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 502, + "duration": 313, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13159,9 +14588,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:49e27a60-8e11-49f9-8885-9e622fd7d423", + "_testId": "urn:uuid:80e8d223-fafe-43c9-99d4-fc536b37aad4", "cell": { "columnId": "apicatalog.com", "rowId": "`credentialSchema` objects MUST have a type specified." @@ -13173,19 +14602,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43570, + "_idleStart": 26898, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 823, + "duration": 189, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -13206,7 +14632,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -13225,9 +14651,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", + "parent": "6RO9JPtMn7zrQ6DhyLoEh", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:7763d24d-39ca-45f2-987a-7d12efe04660" + "_testId": "urn:uuid:4a37c5e1-8d57-46d8-a9c8-6c55e7100f20" }, { "title": "Digital Bazaar", @@ -13237,7 +14663,7 @@ { "type": "test", "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13247,9 +14673,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:949be750-ccf1-40c4-856d-18d3cca8e3b9", + "_testId": "urn:uuid:a73c81b4-f366-48f7-a66b-c92fe04b7ee4", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials MUST contain a type property with an associated value." @@ -13261,19 +14687,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44394, + "_idleStart": 27088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 238, + "duration": 58, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13283,9 +14709,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:1b681728-9b23-4087-ab6e-09288f276aff", + "_testId": "urn:uuid:182e77ce-d5e7-4c4f-8cfd-cbae6d71a505", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations MUST contain a type property with an associated value." @@ -13297,19 +14723,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44631, + "_idleStart": 27146, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 245, + "duration": 78, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13319,9 +14745,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:7d03a9a9-7681-46ca-83c6-9282c1fc960f", + "_testId": "urn:uuid:f652ba98-4d07-42b8-a17c-67524b8e4b1d", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." @@ -13333,12 +14759,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44877, + "_idleStart": 27225, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 308, "state": "passed", "speed": "slow" }, @@ -13355,9 +14781,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:528b1422-fbf8-44d3-9f27-8dc01ba33601", + "_testId": "urn:uuid:69c9804a-5a86-4de1-b6c8-90a43d375ccf", "cell": { "columnId": "Digital Bazaar", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -13369,19 +14795,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45144, + "_idleStart": 27532, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 173, + "duration": 178, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13391,9 +14817,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:bb28be3d-9a56-472d-ac9f-c67deb3f2e6a", + "_testId": "urn:uuid:e5b7e4a6-1b87-4016-b682-6f5ad53e62a3", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Credential objects MUST have a type specified." @@ -13405,19 +14831,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45317, + "_idleStart": 27711, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 259, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13427,9 +14853,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:79907279-4440-425b-a4f5-6aca53cc4fb3", + "_testId": "urn:uuid:a4feb9f9-43d4-4317-8ab7-fd72e44ddc14", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable Presentation objects MUST have a type specified." @@ -13441,19 +14867,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45453, + "_idleStart": 27971, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 108, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13463,9 +14889,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:94cc0f96-8148-4f35-8a34-219dcd38595f", + "_testId": "urn:uuid:eb3218f0-e8bc-4701-81bf-d573c1c13683", "cell": { "columnId": "Digital Bazaar", "rowId": "`credentialStatus` objects MUST have a type specified." @@ -13477,19 +14903,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45550, + "_idleStart": 28079, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 148, + "duration": 147, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13499,9 +14925,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:8d373ac3-78ae-4b77-a925-66aab5e34ced", + "_testId": "urn:uuid:5e68db0e-5120-4648-bf21-bd095399af4f", "cell": { "columnId": "Digital Bazaar", "rowId": "`termsOfUse` objects MUST have a type specified." @@ -13513,19 +14939,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45698, + "_idleStart": 28226, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 136, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13535,9 +14961,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:5891272d-5eb1-420f-b544-4c067ca55ec7", + "_testId": "urn:uuid:b3b789a0-3b20-4650-8ad3-a6dd94e43c99", "cell": { "columnId": "Digital Bazaar", "rowId": "`evidence` objects MUST have a type specified." @@ -13549,19 +14975,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45811, + "_idleStart": 28362, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 137, + "duration": 124, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13571,9 +14997,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:65c0ddab-2e24-47db-b42e-44adca6b6dcc", + "_testId": "urn:uuid:514daf07-a90b-464f-b3b4-16ac2d2555ac", "cell": { "columnId": "Digital Bazaar", "rowId": "`refreshService` objects MUST have a type specified." @@ -13585,19 +15011,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45949, + "_idleStart": 28487, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 130, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13607,9 +15033,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:6ae37497-2513-4210-b730-975239730cd2", + "_testId": "urn:uuid:a3bd5ed7-5735-4e85-9e0f-6e4ddc82fa84", "cell": { "columnId": "Digital Bazaar", "rowId": "`credentialSchema` objects MUST have a type specified." @@ -13621,12 +15047,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46053, + "_idleStart": 28617, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 127, "state": "passed", "speed": "slow" } @@ -13647,7 +15073,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -13666,9 +15092,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", + "parent": "6RO9JPtMn7zrQ6DhyLoEh", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:d2d44f28-2c95-4e1d-81de-795420a87c9b" + "_testId": "urn:uuid:dc73cb50-2369-4006-b5da-3dfc29b5f565" }, { "title": "OpSecId", @@ -13678,7 +15104,7 @@ { "type": "test", "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13688,9 +15114,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:f2234556-753a-47d6-9eab-ac52c031a7b4", + "_testId": "urn:uuid:5446e36d-7eec-4f04-94ec-a62d92a3be4e", "cell": { "columnId": "OpSecId", "rowId": "Verifiable credentials MUST contain a type property with an associated value." @@ -13702,19 +15128,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46175, + "_idleStart": 28744, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 193, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13724,9 +15150,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:340d4260-67cb-4ac0-b2e9-e31db052151f", + "_testId": "urn:uuid:1539c2fe-1468-41fd-a5a6-4fd8a27a3c0a", "cell": { "columnId": "OpSecId", "rowId": "Verifiable presentations MUST contain a type property with an associated value." @@ -13738,19 +15164,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46296, + "_idleStart": 28937, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 70, + "duration": 23, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13760,9 +15186,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:cca8b2f6-3468-44e0-85ff-c85e9c935369", + "_testId": "urn:uuid:1a7d37c2-f3ad-4c63-9c32-b9702122d1a8", "cell": { "columnId": "OpSecId", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." @@ -13774,14 +15200,114 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46366, + "_idleStart": 28960, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 271, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\",\"https://example.org/#ExampleCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential", + "https://example.org/#ExampleCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -13796,9 +15322,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:ca95bbab-38a4-4c98-8649-f0b48e0f4760", + "_testId": "urn:uuid:335d1f60-7c6f-4a89-9639-f2238b66b5b2", "cell": { "columnId": "OpSecId", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -13810,19 +15336,1861 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46637, + "_idleStart": 28985, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 133, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"https://example.org/#ExampleCredential1\",\"https://example.org/#ExampleCredential2\",\"VerifiableCredential\"],\"validFrom\":\"2023-02-23T21:41:38Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "https://example.org/#ExampleCredential1", + "https://example.org/#ExampleCredential2", + "VerifiableCredential" + ], + "validFrom": "2023-02-23T21:41:38Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:a883d15d-d8d2-4172-98cb-c4edca6da219", + "cell": { + "columnId": "OpSecId", + "rowId": "Verifiable Credential objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29008, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\",\"RelationshipCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://www.w3.org/ns/credentials/examples/v2" + ], + "type": [ + "VerifiableCredential", + "RelationshipCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:860f46c1-a3e4-4dfa-acba-3ac7bc18c87b", + "cell": { + "columnId": "OpSecId", + "rowId": "Verifiable Presentation objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29031, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 25, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:14Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4FQJbv4JeyCZtbu6WWLjMbGdsFXA2eYYWgzG41dfqfgdp6zkEh9sCSjGF2JZGSbGmVm6R9njGPbgFSF9oD99CDcm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:14Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4FQJbv4JeyCZtbu6WWLjMbGdsFXA2eYYWgzG41dfqfgdp6zkEh9sCSjGF2JZGSbGmVm6R9njGPbgFSF9oD99CDcm" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:6676aff9-03f9-4b02-8b1c-e2506d8e98a3", + "cell": { + "columnId": "OpSecId", + "rowId": "`credentialStatus` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29057, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "id": "did:example:status", + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:41bbdbf5-03ee-451e-b1d2-925fdd4d1baf", + "cell": { + "columnId": "OpSecId", + "rowId": "`termsOfUse` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29080, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": { + "type": "OdrlPolicy2017" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:d45086de-aa98-4ec1-adf2-cdf5da04a6cd", + "cell": { + "columnId": "OpSecId", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29103, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":{\"type\":\"DocumentVerification2018\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "evidence": { + "type": "DocumentVerification2018" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:e1ee99c3-82b0-47cc-bc0d-ee7075ef892a", + "cell": { + "columnId": "OpSecId", + "rowId": "`refreshService` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29126, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleRefreshService\":\"https://example.org/examples#ExampleRefreshService\"}],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"id\":\"did:example:refresh/1\",\"type\":\"ExampleRefreshService\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "ExampleRefreshService": "https://example.org/examples#ExampleRefreshService" + } + ], + "type": [ + "VerifiableCredential" + ], + "refreshService": { + "id": "did:example:refresh/1", + "type": "ExampleRefreshService" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:385220f5-2b48-4ebd-9f1b-fb0bb74a0d05", + "cell": { + "columnId": "OpSecId", + "rowId": "`credentialSchema` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29150, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 22, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleJsonSchema\":\"https://example.org/examples#ExampleJsonSchema\"}],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"id\":\"did:example:schemas/1\",\"type\":\"ExampleJsonSchema\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "ExampleJsonSchema": "https://example.org/examples#ExampleJsonSchema" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSchema": { + "id": "did:example:schemas/1", + "type": "ExampleJsonSchema" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6RO9JPtMn7zrQ6DhyLoEh", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "_testId": "urn:uuid:14b235fe-912f-49b5-b9d4-7a35a8269c50" + }, + { + "title": "Procivis One Core", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:17d5e17e-33dc-4067-9042-0092da96a395", + "cell": { + "columnId": "Procivis One Core", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29173, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 380, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:587c1abc-bd18-4177-8efc-72d0cdbf5ec4", + "cell": { + "columnId": "Procivis One Core", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29554, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 115, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:6521f80b-5933-4c68-8e75-a54e1ae23df1", + "cell": { + "columnId": "Procivis One Core", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29670, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 770, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:af858ea0-8637-4f1f-9a33-4f5fb786305a", + "cell": { + "columnId": "Procivis One Core", + "rowId": "If more than one (type) value is provided, the order does not matter." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30440, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 266, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:fd241173-8d91-48a1-960b-e627a4b37fe6", + "cell": { + "columnId": "Procivis One Core", + "rowId": "Verifiable Credential objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30707, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 294, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:63ce24a9-8926-4314-88d4-97ccc97c77cc", + "cell": { + "columnId": "Procivis One Core", + "rowId": "Verifiable Presentation objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31000, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 118, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:16Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4jimcvvsrCNbXq3baTmTMGqsA1eSYrRcoK1hhSWXezx6hFH5zHhgFfow2pcM75hreDngHmDhoFBdKzfq6nVG2pmW\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:16Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4jimcvvsrCNbXq3baTmTMGqsA1eSYrRcoK1hhSWXezx6hFH5zHhgFfow2pcM75hreDngHmDhoFBdKzfq6nVG2pmW" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:4e6aad2a-620c-4819-b767-703e369e42ee", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`credentialStatus` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31118, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 249, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:1a1e5477-498f-4b28-ac98-ef4434bf2e34", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`termsOfUse` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31367, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 268, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:d807bafc-a484-49b7-8ea9-62a2cdb1f00c", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31635, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 263, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:ea6051f3-7e33-46e4-8c9d-26b3fd6ea27c", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`refreshService` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31899, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 247, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:6c066ac4-8ae5-4108-8247-10662211847a", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`credentialSchema` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32145, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 247, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6RO9JPtMn7zrQ6DhyLoEh", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "_testId": "urn:uuid:ba6c9be1-aaab-4771-aacc-f0d2a7c2e428" + }, + { + "title": "SpruceID", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "AaS8YASkul3U9WlSlDnMo", + "ctx": null, + "_testId": "urn:uuid:b7ff49bb-517c-482d-925a-4f3d6faab137", + "cell": { + "columnId": "SpruceID", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32392, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 52, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "AaS8YASkul3U9WlSlDnMo", + "ctx": null, + "_testId": "urn:uuid:29f06338-de40-46be-a7fa-3b985fdae2c3", + "cell": { + "columnId": "SpruceID", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32444, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 38, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "AaS8YASkul3U9WlSlDnMo", + "ctx": null, + "_testId": "urn:uuid:7520db83-8d1b-4770-a310-0eab8ef13650", + "cell": { + "columnId": "SpruceID", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32482, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 190, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "AaS8YASkul3U9WlSlDnMo", + "ctx": null, + "_testId": "urn:uuid:1050a913-6841-4b83-b884-782c28a1b903", + "cell": { + "columnId": "SpruceID", + "rowId": "If more than one (type) value is provided, the order does not matter." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32673, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 94, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13832,11 +17200,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:f24c754b-d97c-4c92-9193-2fc7c0feea3a", + "_testId": "urn:uuid:ee2166a2-7d87-4279-ad33-263d748db74d", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, @@ -13846,19 +17214,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46771, + "_idleStart": 32767, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 152, + "duration": 90, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13868,11 +17236,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:ec1ef5f6-cd9c-4908-9fe6-2e8f937ed028", + "_testId": "urn:uuid:8a9f8835-a906-4a4f-8bb9-1dc996bcb1c6", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, @@ -13882,19 +17250,128 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46924, + "_idleStart": 32858, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 144, - "state": "passed", - "speed": "slow" + "duration": 41, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:18Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z59sV6u4W8Nn6yhXEk9LqsrAtbX3PyM6sTpoMKqM4sMBNAPFMbrsH9xC6MFSxD5SqtT6Z3JtEjLFuyLzf3D1LvYAm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:18Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z59sV6u4W8Nn6yhXEk9LqsrAtbX3PyM6sTpoMKqM4sMBNAPFMbrsH9xC6MFSxD5SqtT6Z3JtEjLFuyLzf3D1LvYAm" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13904,11 +17381,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:51645b83-33e8-4e43-956f-e5c025ac8693", + "_testId": "urn:uuid:fc96f19b-ca88-4c6a-9d07-285baa5be9d0", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, @@ -13918,19 +17395,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47068, + "_idleStart": 32899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 153, + "duration": 94, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13940,11 +17417,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:4ab4a0a6-4f79-425e-917f-9105344145f2", + "_testId": "urn:uuid:898491ac-21d5-4b5a-b5b3-51860b90542b", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, @@ -13954,19 +17431,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47220, + "_idleStart": 32994, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 183, + "duration": 97, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13976,11 +17453,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:0280ae2c-fd60-4940-bee8-e75e2e63a2bd", + "_testId": "urn:uuid:6d09e44f-d039-4d6c-b696-a14a1f08048a", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "`evidence` objects MUST have a type specified." }, "_events": {}, @@ -13990,19 +17467,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47403, + "_idleStart": 33092, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 163, + "duration": 89, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14012,11 +17489,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:a392422a-1b10-4c86-b72a-a450ffc58775", + "_testId": "urn:uuid:07e4d96a-32ff-4c29-9752-38abfc026770", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, @@ -14026,19 +17503,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47567, + "_idleStart": 33181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 145, + "duration": 87, "state": "passed", "speed": "slow" }, { "type": "test", "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14048,11 +17525,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:492e90ef-9490-4d73-953c-48ddbad2c159", + "_testId": "urn:uuid:e526f656-50f6-41d4-8e85-71cd5b403a69", "cell": { - "columnId": "OpSecId", + "columnId": "SpruceID", "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, @@ -14062,12 +17539,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47713, + "_idleStart": 33268, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 145, + "duration": 91, "state": "passed", "speed": "slow" } @@ -14077,7 +17554,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -14088,7 +17565,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -14107,19 +17584,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", + "parent": "6RO9JPtMn7zrQ6DhyLoEh", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:a6d63349-3039-4604-a95c-ea9ae5181509" + "_testId": "urn:uuid:14ce1005-78df-48f3-b7f0-8d55545f5f93" }, { - "title": "Procivis One Core", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14129,11 +17606,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:526b7163-2ff8-46c4-ae54-455210b4873b", + "_testId": "urn:uuid:2270bda2-43a0-4b78-9c5f-16939810d756", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, @@ -14143,19 +17620,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47858, + "_idleStart": 33359, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 321, + "duration": 121, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14165,11 +17642,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:e2a67895-e1a7-4a6a-9b98-cb56f97fbd8f", + "_testId": "urn:uuid:e2af02e6-e8cc-4c1a-871f-9004a378912d", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, @@ -14179,19 +17656,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48179, + "_idleStart": 33480, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 112, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14201,11 +17678,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:bfd47eaf-e05f-4fcd-aa5b-c6652c3d2d8a", + "_testId": "urn:uuid:1e798ef2-fda4-4d9c-a45f-f54f2eccfc6f", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, @@ -14215,12 +17692,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48280, + "_idleStart": 33592, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 686, + "duration": 414, "state": "passed", "speed": "slow" }, @@ -14237,11 +17714,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:42631070-2510-42a3-bf11-9dc6fdacff7f", + "_testId": "urn:uuid:d56805dc-0c94-43c2-96c2-475839b61b49", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, @@ -14251,19 +17728,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48967, + "_idleStart": 34006, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 244, + "duration": 213, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14273,11 +17750,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:fddeb17a-7783-442b-ba78-85a09bf14224", + "_testId": "urn:uuid:5780f9e7-77c8-462f-89ca-bb7ac83645d0", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, @@ -14287,19 +17764,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49211, + "_idleStart": 34220, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 249, + "duration": 215, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14309,11 +17786,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:6c849782-5a0d-452f-b977-f61bccb0271d", + "_testId": "urn:uuid:0dea337b-3d38-40ba-909c-74b88984a641", "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, @@ -14323,12 +17800,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49461, + "_idleStart": 34435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 103, "state": "failed", "err": { "generatedMessage": false, @@ -14339,7 +17816,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:14Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4U5HHusbid7VfDj3jkb99usYhCZFMSgC2GVfAbx7vSSoxa5ZEnnBpMvdTSV26otPBmgaaMQSQQbfudyZkec9ijjQ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:20Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3sy8zZBXfQZhc7FDhUNkp3PjcWLRpjVX6cPm8YVPVdfKUyrLPPx6G2DQRE7Bf1F9j4hFRKsK5daGm2jn7UadYJhb\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -14355,20 +17832,18 @@ ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:14Z", + "created": "2024-10-20T05:06:20Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4U5HHusbid7VfDj3jkb99usYhCZFMSgC2GVfAbx7vSSoxa5ZEnnBpMvdTSV26otPBmgaaMQSQQbfudyZkec9ijjQ" + "proofValue": "z3sy8zZBXfQZhc7FDhUNkp3PjcWLRpjVX6cPm8YVPVdfKUyrLPPx6G2DQRE7Bf1F9j4hFRKsK5daGm2jn7UadYJhb" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -14437,25 +17912,343 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:d3489544-a47d-4266-8688-cfeae816c8a2", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`credentialStatus` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34539, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 204, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:43677fc5-1a00-4309-9af9-77794ecb490b", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`termsOfUse` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34743, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 195, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:639fe730-f7b0-4dfa-b5ab-1c60ccedf1d2", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34939, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 353, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:97c7f96f-ff4f-490b-b6f4-19bcdaf08e73", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`refreshService` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35292, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 186, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:1eb3a61e-0140-4337-b15b-ff718c57ccb4", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`credentialSchema` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35479, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 207, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6RO9JPtMn7zrQ6DhyLoEh", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "_testId": "urn:uuid:9b9dbdad-8907-45a8-8230-32955a05271c" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:d839c715-bcf2-45bd-9ed5-59566117b2f4", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ + { + "id": "Verifiable credentials MUST contain a type property with an associated value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "cells": [ + { + "type": "test", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", + "ctx": null, + "_testId": "urn:uuid:403ad4d4-4d93-4c91-9344-9b4e0ca3fd53", + "cell": { + "columnId": "ACA-py", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 23356, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 97, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "o9SqzP4aGB91r9_5mN_va", + "ctx": null, + "_testId": "urn:uuid:863de563-9947-4e67-bed9-28ca0de182ba", + "cell": { + "columnId": "apicatalog.com", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 23767, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 57, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14465,33 +18258,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:00bf0e18-2e21-4ded-81f4-f11d5935622f", + "_testId": "urn:uuid:a73c81b4-f366-48f7-a66b-c92fe04b7ee4", "cell": { - "columnId": "Procivis One Core", - "rowId": "`credentialStatus` objects MUST have a type specified." + "columnId": "Digital Bazaar", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49564, + "_idleStart": 27088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 239, + "duration": 58, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14501,33 +18294,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:ac3c1110-4ecc-4e19-a996-9ce5e7cce6c2", + "_testId": "urn:uuid:5446e36d-7eec-4f04-94ec-a62d92a3be4e", "cell": { - "columnId": "Procivis One Core", - "rowId": "`termsOfUse` objects MUST have a type specified." + "columnId": "OpSecId", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49803, + "_idleStart": 28744, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 224, + "duration": 193, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14537,33 +18330,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:f6d516ea-bc90-4a88-8f65-ad776b491f21", + "_testId": "urn:uuid:17d5e17e-33dc-4067-9042-0092da96a395", "cell": { "columnId": "Procivis One Core", - "rowId": "`evidence` objects MUST have a type specified." + "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50028, + "_idleStart": 29173, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, + "duration": 380, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14573,33 +18366,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:41b356c2-2f3d-4413-8845-947c55e1d595", + "_testId": "urn:uuid:b7ff49bb-517c-482d-925a-4f3d6faab137", "cell": { - "columnId": "Procivis One Core", - "rowId": "`refreshService` objects MUST have a type specified." + "columnId": "SpruceID", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50251, + "_idleStart": 32392, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 250, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "Verifiable credentials MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n\n 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14609,37 +18402,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:3a829448-0945-4383-ac38-9b0aaa7cafb9", + "_testId": "urn:uuid:2270bda2-43a0-4b78-9c5f-16939810d756", "cell": { - "columnId": "Procivis One Core", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50501, + "_idleStart": 33359, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, + "duration": 121, "state": "passed", "speed": "slow" } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + ] + }, + { + "id": "Verifiable presentations MUST contain a type property with an associated value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "cells": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "type": "test", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14648,39 +18443,70 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "jgdNvNLDx5J3rUknFegAK", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, + "_testId": "urn:uuid:1c71fa05-6e3d-402e-a19f-1f420ce72cb8", + "cell": { + "columnId": "ACA-py", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 23453, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 34, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", + "parent": "o9SqzP4aGB91r9_5mN_va", + "ctx": null, + "_testId": "urn:uuid:ac8e7591-ce01-4516-b42b-54982f01a812", + "cell": { + "columnId": "apicatalog.com", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." + }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:3a6fced9-b939-416d-b815-a25aab70160e" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 23825, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 26, + "state": "passed", + "speed": "fast" + }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14690,12 +18516,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:6ab9fb87-9ee1-4a36-acc1-136160f33b19", + "_testId": "urn:uuid:182e77ce-d5e7-4c4f-8cfd-cbae6d71a505", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "Digital Bazaar", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, @@ -14704,19 +18530,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50725, + "_idleStart": 27146, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, + "duration": 78, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14726,11 +18552,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:d85db9be-2d6c-494b-873f-5d65b4f22dac", + "_testId": "urn:uuid:1539c2fe-1468-41fd-a5a6-4fd8a27a3c0a", "cell": { - "columnId": "SpruceID", + "columnId": "OpSecId", "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, @@ -14740,19 +18566,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50766, + "_idleStart": 28937, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14762,33 +18588,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:d848c393-987b-4bef-bc6e-2f9af82da338", + "_testId": "urn:uuid:587c1abc-bd18-4177-8efc-72d0cdbf5ec4", "cell": { - "columnId": "SpruceID", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "Procivis One Core", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50796, + "_idleStart": 29554, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 115, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14798,33 +18624,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:be598c00-8728-47f2-90d4-28e40d3196e3", + "_testId": "urn:uuid:29f06338-de40-46be-a7fa-3b985fdae2c3", "cell": { "columnId": "SpruceID", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50913, + "_idleStart": 32444, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 58, + "duration": 38, "state": "passed", "speed": "medium" }, { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "Verifiable presentations MUST contain a type property with an associated value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n\n 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14834,33 +18660,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:c44f5f09-a2eb-4302-8530-f1fb15a0ede7", + "_testId": "urn:uuid:e2af02e6-e8cc-4c1a-871f-9004a378912d", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable Credential objects MUST have a type specified." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50971, + "_idleStart": 33480, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 49, + "duration": 112, "state": "passed", - "speed": "medium" - }, + "speed": "slow" + } + ] + }, + { + "id": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "cells": [ { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14870,26 +18702,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:11b17ff4-8637-41fd-bf4e-fe6d555483f1", + "_testId": "urn:uuid:8bd7eae7-668e-4655-bb0f-cf026ca87ffe", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "ACA-py", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51020, + "_idleStart": 23488, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -14900,34 +18732,24 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:16Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zgTvyna4848Kn11m4yt8K4jcHm2m3bPgg4yX6dihCpNKwL5bw3tgyFmhSiYTNC9CRBgZXjXAgVcd5hgMXk5PpoW1\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\",\"https://example.org/#ExampleCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" - } + "https://www.w3.org/ns/credentials/v2" ], "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" + "VerifiableCredential", + "https://example.org/#ExampleCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:16Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zgTvyna4848Kn11m4yt8K4jcHm2m3bPgg4yX6dihCpNKwL5bw3tgyFmhSiYTNC9CRBgZXjXAgVcd5hgMXk5PpoW1" - } + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "type": "Ed25519Signature2020" } }, "agent": { @@ -14996,124 +18818,19 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } }, "operator": "doesNotReject" } }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:1bf2137e-c9b8-4db1-bdcd-210cd7949fb5", - "cell": { - "columnId": "SpruceID", - "rowId": "`credentialStatus` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51045, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 60, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:7bc94932-37ee-47a6-9624-26f57e32ab82", - "cell": { - "columnId": "SpruceID", - "rowId": "`termsOfUse` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51104, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 53, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:b4eab931-1b69-4fff-82a3-6b9b84e8ea55", - "cell": { - "columnId": "SpruceID", - "rowId": "`evidence` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51157, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 61, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15123,114 +18840,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:ab2eea7f-d0b0-4518-9096-124b0774cc50", + "_testId": "urn:uuid:2aea25a5-5b6f-4002-9304-6e7b92d49297", "cell": { - "columnId": "SpruceID", - "rowId": "`refreshService` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51218, + "_idleStart": 23851, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 51, - "state": "passed", - "speed": "medium" + "duration": 935, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:c710db32-9794-426e-bd16-e9d4eca6e43f", - "cell": { - "columnId": "SpruceID", - "rowId": "`credentialSchema` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51270, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 49, - "state": "passed", - "speed": "medium" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:bfa48524-9399-46f6-a997-125c00161f6f" - }, - { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15240,33 +18880,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:026d8bbc-a51f-4563-8c3b-497faae19427", + "_testId": "urn:uuid:f652ba98-4d07-42b8-a17c-67524b8e4b1d", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "Digital Bazaar", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51320, + "_idleStart": 27225, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, + "duration": 308, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15276,33 +18916,133 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:24dcc9b1-bdfd-4411-ae5e-68f79a6e59f6", + "_testId": "urn:uuid:1a7d37c2-f3ad-4c63-9c32-b9702122d1a8", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "OpSecId", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51459, + "_idleStart": 28960, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\",\"https://example.org/#ExampleCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential", + "https://example.org/#ExampleCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15312,11 +19052,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:14c46706-ea6d-4555-8d00-0f4cae3a2a34", + "_testId": "urn:uuid:6521f80b-5933-4c68-8e75-a54e1ae23df1", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "Procivis One Core", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, @@ -15326,19 +19066,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51577, + "_idleStart": 29670, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 448, + "duration": 770, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15348,33 +19088,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:051d7107-172e-44ad-b3d5-4dced8a373bd", + "_testId": "urn:uuid:7520db83-8d1b-4770-a310-0eab8ef13650", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If more than one (type) value is provided, the order does not matter." + "columnId": "SpruceID", + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52024, + "_idleStart": 32482, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 278, + "duration": 190, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15384,33 +19124,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:cda51f85-cdf5-435e-bb6b-e65570b1a481", + "_testId": "urn:uuid:1e798ef2-fda4-4d9c-a45f-f54f2eccfc6f", "cell": { "columnId": "VC Issuer Mock", - "rowId": "Verifiable Credential objects MUST have a type specified." + "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52302, + "_idleStart": 33592, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 210, + "duration": 414, "state": "passed", "speed": "slow" - }, + } + ] + }, + { + "id": "If more than one (type) value is provided, the order does not matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "cells": [ { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15420,26 +19166,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:3f65de36-ed2e-467f-996b-57d22ac2a8af", + "_testId": "urn:uuid:0026f9e6-e2c6-4abb-9f46-5be5cc7368d4", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "ACA-py", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52512, + "_idleStart": 23519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 114, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -15450,34 +19196,26 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:17Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3CuSy1v2gbDZBetAqjUsDMySnBCKbDNZo45tshvRf9Zm5DNDSxpSvAJbs7KvcogjxSkMgiv4DKUzQfks9wMzEMxe\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"https://example.org/#ExampleCredential1\",\"https://example.org/#ExampleCredential2\",\"VerifiableCredential\"],\"validFrom\":\"2023-02-23T21:41:38Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" - } + "https://www.w3.org/ns/credentials/v2" ], "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" + "https://example.org/#ExampleCredential1", + "https://example.org/#ExampleCredential2", + "VerifiableCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:17Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3CuSy1v2gbDZBetAqjUsDMySnBCKbDNZo45tshvRf9Zm5DNDSxpSvAJbs7KvcogjxSkMgiv4DKUzQfks9wMzEMxe" - } + "validFrom": "2023-02-23T21:41:38Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "type": "Ed25519Signature2020" } }, "agent": { @@ -15546,16 +19284,19 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } }, "operator": "doesNotReject" } }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15565,33 +19306,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:70b6373c-3e75-4ec9-8923-16b65a83327c", + "_testId": "urn:uuid:663c0f1e-e6ae-472f-8f85-3f4db9f20a49", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`credentialStatus` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52627, + "_idleStart": 24786, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 251, + "duration": 394, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15601,33 +19342,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:beea0917-c0fe-4c09-94d4-ec6f05eb3093", + "_testId": "urn:uuid:69c9804a-5a86-4de1-b6c8-90a43d375ccf", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`termsOfUse` objects MUST have a type specified." + "columnId": "Digital Bazaar", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52878, + "_idleStart": 27532, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 222, + "duration": 178, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15637,33 +19378,135 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:6af33202-7612-4d70-9486-6626a122b953", + "_testId": "urn:uuid:335d1f60-7c6f-4a89-9639-f2238b66b5b2", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`evidence` objects MUST have a type specified." + "columnId": "OpSecId", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53100, + "_idleStart": 28985, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2310, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"https://example.org/#ExampleCredential1\",\"https://example.org/#ExampleCredential2\",\"VerifiableCredential\"],\"validFrom\":\"2023-02-23T21:41:38Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "https://example.org/#ExampleCredential1", + "https://example.org/#ExampleCredential2", + "VerifiableCredential" + ], + "validFrom": "2023-02-23T21:41:38Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15673,33 +19516,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:453c84e5-faac-4031-a985-072e0726d531", + "_testId": "urn:uuid:af858ea0-8637-4f1f-9a33-4f5fb786305a", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`refreshService` objects MUST have a type specified." + "columnId": "Procivis One Core", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55409, + "_idleStart": 30440, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 232, + "duration": 266, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15709,37 +19552,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:32b54b1a-ada2-41f1-82e0-9be837a4b753", + "_testId": "urn:uuid:1050a913-6841-4b83-b884-782c28a1b903", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "SpruceID", + "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55641, + "_idleStart": 32673, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 237, + "duration": 94, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + }, { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "type": "test", + "title": "If more than one (type) value is provided, the order does not matter.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15748,69 +19587,40 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:d56805dc-0c94-43c2-96c2-475839b61b49", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If more than one (type) value is provided, the order does not matter." + }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null + "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34006, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 213, + "state": "passed", + "speed": "slow" } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "N6VG2ExEDJHoFtnNLh7Sf", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "_testId": "urn:uuid:8616bf4c-fef8-432f-84f8-c4676540f46a" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:b3e3074b-ef3e-4d29-86b9-760f5373d11c", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + ] + }, { - "id": "Verifiable credentials MUST contain a type property with an associated value.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "id": "Verifiable Credential objects MUST have a type specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15820,33 +19630,136 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:2d3cc5f6-5956-42a7-a05b-9ef20f49c637", + "_testId": "urn:uuid:644e39fe-5295-4653-90c1-f1919c81f14c", "cell": { "columnId": "ACA-py", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39115, + "_idleStart": 23551, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 159, - "state": "passed", - "speed": "slow" + "duration": 28, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\",\"RelationshipCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://www.w3.org/ns/credentials/examples/v2" + ], + "type": [ + "VerifiableCredential", + "RelationshipCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15856,33 +19769,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:baaf055c-b8a5-42bc-9c08-5f273ffe8ffa", + "_testId": "urn:uuid:1af50e39-4cce-4a24-b256-b9e23651028e", "cell": { "columnId": "apicatalog.com", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39588, + "_idleStart": 25180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 181, + "duration": 202, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15892,33 +19805,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:949be750-ccf1-40c4-856d-18d3cca8e3b9", + "_testId": "urn:uuid:e5b7e4a6-1b87-4016-b682-6f5ad53e62a3", "cell": { "columnId": "Digital Bazaar", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44394, + "_idleStart": 27711, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 238, + "duration": 259, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15928,33 +19841,134 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:f2234556-753a-47d6-9eab-ac52c031a7b4", + "_testId": "urn:uuid:a883d15d-d8d2-4172-98cb-c4edca6da219", "cell": { "columnId": "OpSecId", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46175, + "_idleStart": 29008, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\",\"RelationshipCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + "https://www.w3.org/ns/credentials/examples/v2" + ], + "type": [ + "VerifiableCredential", + "RelationshipCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15964,33 +19978,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:526b7163-2ff8-46c4-ae54-455210b4873b", + "_testId": "urn:uuid:fd241173-8d91-48a1-960b-e627a4b37fe6", "cell": { "columnId": "Procivis One Core", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47858, + "_idleStart": 30707, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 321, + "duration": 294, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16000,33 +20014,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:6ab9fb87-9ee1-4a36-acc1-136160f33b19", + "_testId": "urn:uuid:ee2166a2-7d87-4279-ad33-263d748db74d", "cell": { "columnId": "SpruceID", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50725, + "_idleStart": 32767, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, + "duration": 90, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "Verifiable credentials MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(\n endpoints.issue(require('./input/credential-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC without a type.');\n }", + "title": "Verifiable Credential objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16036,39 +20050,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:026d8bbc-a51f-4563-8c3b-497faae19427", + "_testId": "urn:uuid:5780f9e7-77c8-462f-89ca-bb7ac83645d0", "cell": { "columnId": "VC Issuer Mock", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51320, + "_idleStart": 34220, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, + "duration": 215, "state": "passed", "speed": "slow" } ] }, { - "id": "Verifiable presentations MUST contain a type property with an associated value.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "id": "Verifiable Presentation objects MUST have a type specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16078,33 +20092,142 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:aa2522c0-9087-4974-9067-ac54f07bc442", + "_testId": "urn:uuid:c2f77679-86dd-4b66-b11d-2af040c5062c", "cell": { "columnId": "ACA-py", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39275, + "_idleStart": 23580, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, - "state": "passed", - "speed": "fast" + "duration": 42, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:09Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2Ge8mckJoJSYcmME13D4hUaRan9noCuekGWTuUh1eWa4SGRdaCTVVf9DxdhbDkSxUY3Dg8XDb3EXBJ4K3H9uSp25\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:09Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z2Ge8mckJoJSYcmME13D4hUaRan9noCuekGWTuUh1eWa4SGRdaCTVVf9DxdhbDkSxUY3Dg8XDb3EXBJ4K3H9uSp25" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16114,33 +20237,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:32346b89-faeb-417e-ac6c-61d4f27e31e4", + "_testId": "urn:uuid:4184db14-6b02-4147-80a8-392a85bf8883", "cell": { "columnId": "apicatalog.com", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39769, + "_idleStart": 25383, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 97, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16150,33 +20273,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:1b681728-9b23-4087-ab6e-09288f276aff", + "_testId": "urn:uuid:a4feb9f9-43d4-4317-8ab7-fd72e44ddc14", "cell": { "columnId": "Digital Bazaar", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44631, + "_idleStart": 27971, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 245, + "duration": 108, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16186,33 +20309,142 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:340d4260-67cb-4ac0-b2e9-e31db052151f", + "_testId": "urn:uuid:860f46c1-a3e4-4dfa-acba-3ac7bc18c87b", "cell": { "columnId": "OpSecId", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46296, + "_idleStart": 29031, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 70, - "state": "passed", - "speed": "medium" + "duration": 25, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:14Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4FQJbv4JeyCZtbu6WWLjMbGdsFXA2eYYWgzG41dfqfgdp6zkEh9sCSjGF2JZGSbGmVm6R9njGPbgFSF9oD99CDcm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:14Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4FQJbv4JeyCZtbu6WWLjMbGdsFXA2eYYWgzG41dfqfgdp6zkEh9sCSjGF2JZGSbGmVm6R9njGPbgFSF9oD99CDcm" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16222,111 +20454,153 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:e2a67895-e1a7-4a6a-9b98-cb56f97fbd8f", + "_testId": "urn:uuid:63ce24a9-8926-4314-88d4-97ccc97c77cc", "cell": { "columnId": "Procivis One Core", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48179, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 101, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:d85db9be-2d6c-494b-873f-5d65b4f22dac", - "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50766, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 30, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "Verifiable presentations MUST contain a type property with an associated value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.`;\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP without a type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:24dcc9b1-bdfd-4411-ae5e-68f79a6e59f6", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51459, + "_idleStart": 31000, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "cells": [ + "duration": 118, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:16Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4jimcvvsrCNbXq3baTmTMGqsA1eSYrRcoK1hhSWXezx6hFH5zHhgFfow2pcM75hreDngHmDhoFBdKzfq6nVG2pmW\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:16Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z4jimcvvsrCNbXq3baTmTMGqsA1eSYrRcoK1hhSWXezx6hFH5zHhgFfow2pcM75hreDngHmDhoFBdKzfq6nVG2pmW" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } + }, + "operator": "doesNotReject" + } + }, { "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16336,26 +20610,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:ecb97d25-a476-4283-9f3a-3701e2efe89d", + "_testId": "urn:uuid:8a9f8835-a906-4a4f-8bb9-1dc996bcb1c6", "cell": { - "columnId": "ACA-py", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "SpruceID", + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39304, + "_idleStart": 32858, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 41, "state": "failed", "err": { "generatedMessage": false, @@ -16366,24 +20640,34 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\",\"https://example.org/#ExampleCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:18Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z59sV6u4W8Nn6yhXEk9LqsrAtbX3PyM6sTpoMKqM4sMBNAPFMbrsH9xC6MFSxD5SqtT6Z3JtEjLFuyLzf3D1LvYAm\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { - "credential": { + "verifiablePresentation": { "@context": [ - "https://www.w3.org/ns/credentials/v2" + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } ], "type": [ - "VerifiableCredential", - "https://example.org/#ExampleCredential" + "VerifiablePresentation", + "CredentialManagerPresentation" ], - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:18Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z59sV6u4W8Nn6yhXEk9LqsrAtbX3PyM6sTpoMKqM4sMBNAPFMbrsH9xC6MFSxD5SqtT6Z3JtEjLFuyLzf3D1LvYAm" + } }, "options": { - "type": "Ed25519Signature2020" + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -16452,19 +20736,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", + "title": "Verifiable Presentation objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16474,226 +20755,148 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:b85100da-c963-48ce-9518-5bc411b1e857", + "_testId": "urn:uuid:0dea337b-3d38-40ba-909c-74b88984a641", "cell": { - "columnId": "apicatalog.com", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "VC Issuer Mock", + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39860, + "_idleStart": 34435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 924, + "duration": 103, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:20Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3sy8zZBXfQZhc7FDhUNkp3PjcWLRpjVX6cPm8YVPVdfKUyrLPPx6G2DQRE7Bf1F9j4hFRKsK5daGm2jn7UadYJhb\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + } + ], + "type": [ + "VerifiablePresentation", + "CredentialManagerPresentation" + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:20Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z3sy8zZBXfQZhc7FDhUNkp3PjcWLRpjVX6cPm8YVPVdfKUyrLPPx6G2DQRE7Bf1F9j4hFRKsK5daGm2jn7UadYJhb" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 }, - "operator": "rejects" + "operator": "doesNotReject" } - }, - { - "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", - "ctx": null, - "_testId": "urn:uuid:7d03a9a9-7681-46ca-83c6-9282c1fc960f", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44877, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 268, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", - "ctx": null, - "_testId": "urn:uuid:cca8b2f6-3468-44e0-85ff-c85e9c935369", - "cell": { - "columnId": "OpSecId", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 46366, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 271, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", - "ctx": null, - "_testId": "urn:uuid:bfd47eaf-e05f-4fcd-aa5b-c6652c3d2d8a", - "cell": { - "columnId": "Procivis One Core", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48280, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 686, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:d848c393-987b-4bef-bc6e-2f9af82da338", - "cell": { - "columnId": "SpruceID", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50796, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 116, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.`;\n // type is URL: OK\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-type-url-ok.json')),\n 'Failed to accept a VC with an additional type as a URL.');\n // type mapping to URL: OK\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json')),\n 'Failed to accept a VC with an additional type defined in the ' +\n '`@context`.');\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with type mapped to an invalid URL.');\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:14c46706-ea6d-4555-8d00-0f4cae3a2a34", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=The%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51577, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 448, - "state": "passed", - "speed": "slow" } ] }, { - "id": "If more than one (type) value is provided, the order does not matter.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "id": "`credentialStatus` objects MUST have a type specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16703,26 +20906,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:8ac16382-61d2-4ebd-9227-a9be7d3c7239", + "_testId": "urn:uuid:501baaca-ab92-41c1-9eed-ce0d3cc39ca5", "cell": { "columnId": "ACA-py", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39332, + "_idleStart": 23623, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 33, "state": "failed", "err": { "generatedMessage": false, @@ -16733,22 +20936,26 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"https://example.org/#ExampleCredential1\",\"https://example.org/#ExampleCredential2\",\"VerifiableCredential\"],\"validFrom\":\"2023-02-23T21:41:38Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2" + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } ], "type": [ - "https://example.org/#ExampleCredential1", - "https://example.org/#ExampleCredential2", "VerifiableCredential" ], - "validFrom": "2023-02-23T21:41:38Z", "credentialSubject": { "id": "did:example:subject" }, + "credentialStatus": { + "id": "did:example:status", + "type": "CredentialStatusList2017" + }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -16832,8 +21039,8 @@ }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16843,33 +21050,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:0e9a0bfb-96ea-4064-8944-703d65426e76", + "_testId": "urn:uuid:96d818fe-de03-433b-8dcf-7acfbb921d6f", "cell": { "columnId": "apicatalog.com", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40785, + "_idleStart": 25480, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 480, - "state": "passed", - "speed": "slow" + "duration": 399, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16879,33 +21090,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:528b1422-fbf8-44d3-9f27-8dc01ba33601", + "_testId": "urn:uuid:eb3218f0-e8bc-4701-81bf-d573c1c13683", "cell": { "columnId": "Digital Bazaar", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45144, + "_idleStart": 28079, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 173, + "duration": 147, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16915,33 +21126,139 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:ca95bbab-38a4-4c98-8649-f0b48e0f4760", + "_testId": "urn:uuid:6676aff9-03f9-4b02-8b1c-e2506d8e98a3", "cell": { "columnId": "OpSecId", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46637, + "_idleStart": 29057, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 133, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "id": "did:example:status", + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16951,33 +21268,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:42631070-2510-42a3-bf11-9dc6fdacff7f", + "_testId": "urn:uuid:4e6aad2a-620c-4819-b767-703e369e42ee", "cell": { "columnId": "Procivis One Core", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48967, + "_idleStart": 31118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 244, + "duration": 249, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16987,33 +21304,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:be598c00-8728-47f2-90d4-28e40d3196e3", + "_testId": "urn:uuid:fc96f19b-ca88-4c6a-9d07-285baa5be9d0", "cell": { "columnId": "SpruceID", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50913, + "_idleStart": 32899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 58, + "duration": 94, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "If more than one (type) value is provided, the order does not matter.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.`;\n //issue VC with multiple urls in type property\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'last).');\n //issue another VC with same urls in a different order\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json')),\n 'Failed to accept a VC with different type array ordering (VC type ' +\n 'middle).');\n }", + "title": "`credentialStatus` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17023,39 +21340,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:051d7107-172e-44ad-b3d5-4dced8a373bd", + "_testId": "urn:uuid:d3489544-a47d-4266-8688-cfeae816c8a2", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If more than one (type) value is provided, the order does not matter." + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52024, + "_idleStart": 34539, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 278, + "duration": 204, "state": "passed", "speed": "slow" } ] }, { - "id": "Verifiable Credential objects MUST have a type specified.", + "id": "`termsOfUse` objects MUST have a type specified.", "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17065,12 +21382,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:3ffc875a-b10d-4104-8ca5-82929ee72b34", + "_testId": "urn:uuid:24cd9693-e547-4c9e-8f8c-c5b8385f95da", "cell": { "columnId": "ACA-py", - "rowId": "Verifiable Credential objects MUST have a type specified." + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17079,12 +21396,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39360, + "_idleStart": 23656, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -17095,21 +21412,25 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",\"https://www.w3.org/ns/credentials/examples/v2\"],\"type\":[\"VerifiableCredential\",\"RelationshipCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", - "https://www.w3.org/ns/credentials/examples/v2" + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } ], "type": [ - "VerifiableCredential", - "RelationshipCredential" + "VerifiableCredential" ], "credentialSubject": { "id": "did:example:subject" }, + "termsOfUse": { + "type": "OdrlPolicy2017" + }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -17193,8 +21514,8 @@ }, { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17204,12 +21525,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:d3ae9a3d-cbfd-4516-a25e-e56d34bf0913", + "_testId": "urn:uuid:0abfc297-bda8-4899-a200-82f8fbb4924d", "cell": { "columnId": "apicatalog.com", - "rowId": "Verifiable Credential objects MUST have a type specified." + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17218,19 +21539,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41266, + "_idleStart": 25879, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 353, - "state": "passed", - "speed": "slow" + "duration": 304, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17240,12 +21565,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:bb28be3d-9a56-472d-ac9f-c67deb3f2e6a", + "_testId": "urn:uuid:5e68db0e-5120-4648-bf21-bd095399af4f", "cell": { "columnId": "Digital Bazaar", - "rowId": "Verifiable Credential objects MUST have a type specified." + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17254,19 +21579,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45317, + "_idleStart": 28226, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 136, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17276,162 +21601,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:f24c754b-d97c-4c92-9193-2fc7c0feea3a", + "_testId": "urn:uuid:41bbdbf5-03ee-451e-b1d2-925fdd4d1baf", "cell": { "columnId": "OpSecId", - "rowId": "Verifiable Credential objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 46771, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 152, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", - "ctx": null, - "_testId": "urn:uuid:fddeb17a-7783-442b-ba78-85a09bf14224", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable Credential objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49211, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 249, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:c44f5f09-a2eb-4302-8530-f1fb15a0ede7", - "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable Credential objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50971, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 49, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "Verifiable Credential objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-optional-type-ok.json')),\n 'Failed to accept a VC with additional type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:cda51f85-cdf5-435e-bb6b-e65570b1a481", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable Credential objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 52302, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 210, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "Verifiable Presentation objects MUST have a type specified.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "cells": [ - { - "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", - "ctx": null, - "_testId": "urn:uuid:b5c53ebe-70a6-4401-affb-6d2b1c080862", - "cell": { - "columnId": "ACA-py", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17440,12 +21615,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39389, + "_idleStart": 29080, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 51, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -17456,34 +21631,30 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2viePpACUASXePSuezSZdqpHDBQLasaPerU3jGRyv9a1oQr78o7mo26hkBaW5Pv2LtUiTZ1XXGZkbDcMDpjV2EB8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" } ], "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" + "VerifiableCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:04Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2viePpACUASXePSuezSZdqpHDBQLasaPerU3jGRyv9a1oQr78o7mo26hkBaW5Pv2LtUiTZ1XXGZkbDcMDpjV2EB8" - } + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": { + "type": "OdrlPolicy2017" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -17552,16 +21723,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17571,12 +21742,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:9e56f091-28ab-45e5-98db-37ac5e6eb051", + "_testId": "urn:uuid:1a1e5477-498f-4b28-ac98-ef4434bf2e34", "cell": { - "columnId": "apicatalog.com", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "Procivis One Core", + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17585,19 +21756,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41620, + "_idleStart": 31367, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, + "duration": 268, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17607,12 +21778,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:79907279-4440-425b-a4f5-6aca53cc4fb3", + "_testId": "urn:uuid:898491ac-21d5-4b5a-b5b3-51860b90542b", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "SpruceID", + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17621,19 +21792,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45453, + "_idleStart": 32994, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 97, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`termsOfUse` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17643,12 +21814,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:ec1ef5f6-cd9c-4908-9fe6-2e8f937ed028", + "_testId": "urn:uuid:43677fc5-1a00-4309-9af9-77794ecb490b", "cell": { - "columnId": "OpSecId", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "VC Issuer Mock", + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17657,19 +21828,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46924, + "_idleStart": 34743, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 144, + "duration": 195, "state": "passed", "speed": "slow" - }, + } + ] + }, + { + "id": "`evidence` objects MUST have a type specified.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "cells": [ { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17679,12 +21856,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:6c849782-5a0d-452f-b977-f61bccb0271d", + "_testId": "urn:uuid:49e628df-ec9b-4cb9-b2f5-92e8641a9fb4", "cell": { - "columnId": "Procivis One Core", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "ACA-py", + "rowId": "`evidence` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17693,12 +21870,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49461, + "_idleStart": 23684, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -17709,36 +21886,29 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:14Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4U5HHusbid7VfDj3jkb99usYhCZFMSgC2GVfAbx7vSSoxa5ZEnnBpMvdTSV26otPBmgaaMQSQQbfudyZkec9ijjQ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":{\"type\":\"DocumentVerification2018\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" } ], "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" + "VerifiableCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:14Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4U5HHusbid7VfDj3jkb99usYhCZFMSgC2GVfAbx7vSSoxa5ZEnnBpMvdTSV26otPBmgaaMQSQQbfudyZkec9ijjQ" - } + "credentialSubject": { + "id": "did:example:subject" + }, + "evidence": { + "type": "DocumentVerification2018" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "type": "Ed25519Signature2020" } }, "agent": { @@ -17807,16 +21977,10 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", "status": 400, "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" } }, "operator": "doesNotReject" @@ -17824,8 +21988,8 @@ }, { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17835,12 +21999,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:11b17ff4-8637-41fd-bf4e-fe6d555483f1", + "_testId": "urn:uuid:62c25ed3-9e26-49fe-99f9-7b56d08cfb80", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "`evidence` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17849,128 +22013,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51020, + "_idleStart": 26183, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 399, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:16Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zgTvyna4848Kn11m4yt8K4jcHm2m3bPgg4yX6dihCpNKwL5bw3tgyFmhSiYTNC9CRBgZXjXAgVcd5hgMXk5PpoW1\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", - "method": "POST", - "json": { - "verifiablePresentation": { - "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" - } - ], - "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" - ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:16Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zgTvyna4848Kn11m4yt8K4jcHm2m3bPgg4yX6dihCpNKwL5bw3tgyFmhSiYTNC9CRBgZXjXAgVcd5hgMXk5PpoW1" - } - }, - "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 - }, - "operator": "doesNotReject" + "operator": "rejects" } }, { "type": "test", - "title": "Verifiable Presentation objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n const presentationOptionalType = await createLocalVp({\n presentation: require('./input/presentation-optional-type-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType\n ), 'Failed to accept VP with `@context` mapped type.');\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP missing `VerifiableCredential` type.');\n }", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17980,12 +22039,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:3f65de36-ed2e-467f-996b-57d22ac2a8af", + "_testId": "urn:uuid:b3b789a0-3b20-4650-8ad3-a6dd94e43c99", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Verifiable Presentation objects MUST have a type specified." + "columnId": "Digital Bazaar", + "rowId": "`evidence` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -17994,12 +22053,48 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52512, + "_idleStart": 28362, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 114, + "duration": 124, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "HanTzBL5NjdUZBTBwFAcg", + "ctx": null, + "_testId": "urn:uuid:d45086de-aa98-4ec1-adf2-cdf5da04a6cd", + "cell": { + "columnId": "OpSecId", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29103, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -18010,34 +22105,30 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:07:17Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z3CuSy1v2gbDZBetAqjUsDMySnBCKbDNZo45tshvRf9Zm5DNDSxpSvAJbs7KvcogjxSkMgiv4DKUzQfks9wMzEMxe\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":{\"type\":\"DocumentVerification2018\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { - "verifiablePresentation": { + "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "CredentialManagerPresentation": "https://example.org/examples#CredentialManagerPresentation" + "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" } ], "type": [ - "VerifiablePresentation", - "CredentialManagerPresentation" + "VerifiableCredential" ], - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:07:17Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z3CuSy1v2gbDZBetAqjUsDMySnBCKbDNZo45tshvRf9Zm5DNDSxpSvAJbs7KvcogjxSkMgiv4DKUzQfks9wMzEMxe" - } + "credentialSubject": { + "id": "did:example:subject" + }, + "evidence": { + "type": "DocumentVerification2018" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -18106,22 +22197,130 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "ieMHMQiB-f9EXjBKeR5rT", + "ctx": null, + "_testId": "urn:uuid:d807bafc-a484-49b7-8ea9-62a2cdb1f00c", + "cell": { + "columnId": "Procivis One Core", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31635, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 263, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "AaS8YASkul3U9WlSlDnMo", + "ctx": null, + "_testId": "urn:uuid:6d09e44f-d039-4d6c-b696-a14a1f08048a", + "cell": { + "columnId": "SpruceID", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33092, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 89, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "`evidence` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", + "parent": "OFr8Lxu67b7eHNvUuwfQu", + "ctx": null, + "_testId": "urn:uuid:639fe730-f7b0-4dfa-b5ab-1c60ccedf1d2", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "`evidence` objects MUST have a type specified." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34939, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 353, + "state": "passed", + "speed": "slow" } ] }, { - "id": "`credentialStatus` objects MUST have a type specified.", + "id": "`refreshService` objects MUST have a type specified.", "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18131,12 +22330,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:9e4817a1-86f5-41b7-9d20-418563d5faa0", + "_testId": "urn:uuid:acaea975-d585-4d4f-ad87-b262352b653b", "cell": { "columnId": "ACA-py", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18145,12 +22344,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39440, + "_idleStart": 23711, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -18161,26 +22360,26 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleRefreshService\":\"https://example.org/examples#ExampleRefreshService\"}],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"id\":\"did:example:refresh/1\",\"type\":\"ExampleRefreshService\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + "ExampleRefreshService": "https://example.org/examples#ExampleRefreshService" } ], "type": [ "VerifiableCredential" ], + "refreshService": { + "id": "did:example:refresh/1", + "type": "ExampleRefreshService" + }, "credentialSubject": { "id": "did:example:subject" }, - "credentialStatus": { - "id": "did:example:status", - "type": "CredentialStatusList2017" - }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -18264,8 +22463,8 @@ }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18275,12 +22474,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:8775975b-5538-4419-8ef2-16ddfca24e0d", + "_testId": "urn:uuid:22105610-7350-4e0a-b978-6a0f5fb72c71", "cell": { "columnId": "apicatalog.com", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18289,26 +22488,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41737, + "_idleStart": 26582, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 346, + "duration": 313, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18318,12 +22514,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:94cc0f96-8148-4f35-8a34-219dcd38595f", + "_testId": "urn:uuid:514daf07-a90b-464f-b3b4-16ac2d2555ac", "cell": { "columnId": "Digital Bazaar", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18332,19 +22528,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45550, + "_idleStart": 28487, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 148, + "duration": 130, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18354,12 +22550,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:51645b83-33e8-4e43-956f-e5c025ac8693", + "_testId": "urn:uuid:e1ee99c3-82b0-47cc-bc0d-ee7075ef892a", "cell": { "columnId": "OpSecId", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18368,19 +22564,125 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47068, + "_idleStart": 29126, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 153, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleRefreshService\":\"https://example.org/examples#ExampleRefreshService\"}],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"id\":\"did:example:refresh/1\",\"type\":\"ExampleRefreshService\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "ExampleRefreshService": "https://example.org/examples#ExampleRefreshService" + } + ], + "type": [ + "VerifiableCredential" + ], + "refreshService": { + "id": "did:example:refresh/1", + "type": "ExampleRefreshService" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18390,12 +22692,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:00bf0e18-2e21-4ded-81f4-f11d5935622f", + "_testId": "urn:uuid:ea6051f3-7e33-46e4-8c9d-26b3fd6ea27c", "cell": { "columnId": "Procivis One Core", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18404,19 +22706,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49564, + "_idleStart": 31899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 239, + "duration": 247, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18426,12 +22728,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:1bf2137e-c9b8-4db1-bdcd-210cd7949fb5", + "_testId": "urn:uuid:07e4d96a-32ff-4c29-9752-38abfc026770", "cell": { "columnId": "SpruceID", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18440,19 +22742,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51045, + "_idleStart": 33181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 60, + "duration": 87, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "`credentialStatus` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-status-ok.json')),\n 'Failed to accept a VC with `credentialStatus` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", + "title": "`refreshService` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18462,12 +22764,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:70b6373c-3e75-4ec9-8923-16b65a83327c", + "_testId": "urn:uuid:97c7f96f-ff4f-490b-b6f4-19bcdaf08e73", "cell": { "columnId": "VC Issuer Mock", - "rowId": "`credentialStatus` objects MUST have a type specified." + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18476,25 +22778,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52627, + "_idleStart": 35292, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 251, + "duration": 186, "state": "passed", "speed": "slow" } ] }, { - "id": "`termsOfUse` objects MUST have a type specified.", + "id": "`credentialSchema` objects MUST have a type specified.", "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "cells": [ { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18504,12 +22806,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "parent": "Bh4G-fUzAuCHijZ_Mnhd2", "ctx": null, - "_testId": "urn:uuid:c7b85fd7-4b93-478c-9af2-d352de00a590", + "_testId": "urn:uuid:b30c91a8-578f-44e1-a058-c44101229c13", "cell": { "columnId": "ACA-py", - "rowId": "`termsOfUse` objects MUST have a type specified." + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18518,12 +22820,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39470, + "_idleStart": 23739, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -18534,25 +22836,26 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleJsonSchema\":\"https://example.org/examples#ExampleJsonSchema\"}],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"id\":\"did:example:schemas/1\",\"type\":\"ExampleJsonSchema\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + "ExampleJsonSchema": "https://example.org/examples#ExampleJsonSchema" } ], "type": [ "VerifiableCredential" ], + "credentialSchema": { + "id": "did:example:schemas/1", + "type": "ExampleJsonSchema" + }, "credentialSubject": { "id": "did:example:subject" }, - "termsOfUse": { - "type": "OdrlPolicy2017" - }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -18636,8 +22939,8 @@ }, { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18647,12 +22950,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "parent": "o9SqzP4aGB91r9_5mN_va", "ctx": null, - "_testId": "urn:uuid:ceb032f5-8f5e-4129-a1db-afb90689f8fd", + "_testId": "urn:uuid:80e8d223-fafe-43c9-99d4-fc536b37aad4", "cell": { "columnId": "apicatalog.com", - "rowId": "`termsOfUse` objects MUST have a type specified." + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18661,26 +22964,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42084, + "_idleStart": 26898, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 479, + "duration": 189, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18690,12 +22990,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "LaLGdN-5O7vTcXxStY_Go", "ctx": null, - "_testId": "urn:uuid:8d373ac3-78ae-4b77-a925-66aab5e34ced", + "_testId": "urn:uuid:a3bd5ed7-5735-4e85-9e0f-6e4ddc82fa84", "cell": { "columnId": "Digital Bazaar", - "rowId": "`termsOfUse` objects MUST have a type specified." + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18704,19 +23004,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45698, + "_idleStart": 28617, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 127, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18726,162 +23026,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "HanTzBL5NjdUZBTBwFAcg", "ctx": null, - "_testId": "urn:uuid:4ab4a0a6-4f79-425e-917f-9105344145f2", + "_testId": "urn:uuid:385220f5-2b48-4ebd-9f1b-fb0bb74a0d05", "cell": { "columnId": "OpSecId", - "rowId": "`termsOfUse` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 47220, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 183, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", - "ctx": null, - "_testId": "urn:uuid:ac3c1110-4ecc-4e19-a996-9ce5e7cce6c2", - "cell": { - "columnId": "Procivis One Core", - "rowId": "`termsOfUse` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49803, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 224, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:7bc94932-37ee-47a6-9624-26f57e32ab82", - "cell": { - "columnId": "SpruceID", - "rowId": "`termsOfUse` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51104, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 53, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "`termsOfUse` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-ok.json')),\n 'Failed to accept a VC with `termsOfUse` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:beea0917-c0fe-4c09-94d4-ec6f05eb3093", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`termsOfUse` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 52878, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 222, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "`evidence` objects MUST have a type specified.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "cells": [ - { - "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", - "ctx": null, - "_testId": "urn:uuid:b29a7402-497a-48c6-bea4-9cd5cc7759e3", - "cell": { - "columnId": "ACA-py", - "rowId": "`evidence` objects MUST have a type specified." + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -18890,12 +23040,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39499, + "_idleStart": 29150, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 22, "state": "failed", "err": { "generatedMessage": false, @@ -18906,29 +23056,31 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":{\"type\":\"DocumentVerification2018\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleJsonSchema\":\"https://example.org/examples#ExampleJsonSchema\"}],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"id\":\"did:example:schemas/1\",\"type\":\"ExampleJsonSchema\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { "@context": [ "https://www.w3.org/ns/credentials/v2", { - "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" + "ExampleJsonSchema": "https://example.org/examples#ExampleJsonSchema" } ], "type": [ "VerifiableCredential" ], + "credentialSchema": { + "id": "did:example:schemas/1", + "type": "ExampleJsonSchema" + }, "credentialSubject": { "id": "did:example:subject" }, - "evidence": { - "type": "DocumentVerification2018" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -18997,62 +23149,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", - "ctx": null, - "_testId": "urn:uuid:81920032-fec7-4515-b36b-a9db90ee98d3", - "cell": { - "columnId": "apicatalog.com", - "rowId": "`evidence` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 42563, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 504, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } - }, - { - "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19062,12 +23168,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "parent": "ieMHMQiB-f9EXjBKeR5rT", "ctx": null, - "_testId": "urn:uuid:5891272d-5eb1-420f-b544-4c067ca55ec7", + "_testId": "urn:uuid:6c066ac4-8ae5-4108-8247-10662211847a", "cell": { - "columnId": "Digital Bazaar", - "rowId": "`evidence` objects MUST have a type specified." + "columnId": "Procivis One Core", + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -19076,19 +23182,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45811, + "_idleStart": 32145, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 137, + "duration": 247, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19098,12 +23204,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "parent": "AaS8YASkul3U9WlSlDnMo", "ctx": null, - "_testId": "urn:uuid:0280ae2c-fd60-4940-bee8-e75e2e63a2bd", + "_testId": "urn:uuid:e526f656-50f6-41d4-8e85-71cd5b403a69", "cell": { - "columnId": "OpSecId", - "rowId": "`evidence` objects MUST have a type specified." + "columnId": "SpruceID", + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -19112,19 +23218,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47403, + "_idleStart": 33268, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 163, + "duration": 91, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "`credentialSchema` objects MUST have a type specified.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19134,12 +23240,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "parent": "OFr8Lxu67b7eHNvUuwfQu", "ctx": null, - "_testId": "urn:uuid:f6d516ea-bc90-4a88-8f65-ad776b491f21", + "_testId": "urn:uuid:1eb3a61e-0140-4337-b15b-ff718c57ccb4", "cell": { - "columnId": "Procivis One Core", - "rowId": "`evidence` objects MUST have a type specified." + "columnId": "VC Issuer Mock", + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -19148,19 +23254,32 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50028, + "_idleStart": 35479, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, + "duration": 207, "state": "passed", "speed": "slow" - }, + } + ] + } + ] + }, + { + "title": "Names and Descriptions", + "ctx": null, + "suites": [ + { + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19169,76 +23288,136 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:b4eab931-1b69-4fff-82a3-6b9b84e8ea55", + "_testId": "urn:uuid:ede016f7-4d20-4484-8e3a-4621388caed1", "cell": { - "columnId": "SpruceID", - "rowId": "`evidence` objects MUST have a type specified." + "columnId": "ACA-py", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51157, + "_idleStart": 35687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 61, - "state": "passed", - "speed": "medium" + "duration": 121, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": "Example Credential", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "`evidence` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidence-ok.json')),\n 'Failed to accept a VC with `evidence` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `evidence` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:6af33202-7612-4d70-9486-6626a122b953", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`evidence` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 53100, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 2310, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "`refreshService` objects MUST have a type specified.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "cells": [ - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19247,27 +23426,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:c33c340f-93b0-449e-93a2-ca8a94ef8b22", + "_testId": "urn:uuid:794c7793-1cba-4a64-905d-94a21851f471", "cell": { "columnId": "ACA-py", - "rowId": "`refreshService` objects MUST have a type specified." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39528, + "_idleStart": 35809, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -19278,23 +23457,17 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleRefreshService\":\"https://example.org/examples#ExampleRefreshService\"}],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"id\":\"did:example:refresh/1\",\"type\":\"ExampleRefreshService\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "ExampleRefreshService": "https://example.org/examples#ExampleRefreshService" - } + "https://www.w3.org/ns/credentials/v2" ], "type": [ "VerifiableCredential" ], - "refreshService": { - "id": "did:example:refresh/1", - "type": "ExampleRefreshService" - }, + "description": "An Example Credential", "credentialSubject": { "id": "did:example:subject" }, @@ -19381,8 +23554,8 @@ }, { "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19391,227 +23564,138 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:f26a93ed-2ae6-45e1-b636-144a83efd761", + "_testId": "urn:uuid:d7c56785-0ae8-47fc-b763-9f2a21fa9094", "cell": { - "columnId": "apicatalog.com", - "rowId": "`refreshService` objects MUST have a type specified." + "columnId": "ACA-py", + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43068, + "_idleStart": 35836, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 502, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": { + "name": "ExampleIssuer", + "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "credentialSubject": { + "id": "did:example:subject" + } + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } }, - "operator": "rejects" + "operator": "doesNotReject" } }, { "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", - "ctx": null, - "_testId": "urn:uuid:65c0ddab-2e24-47db-b42e-44adca6b6dcc", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "`refreshService` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 45949, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 104, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", - "ctx": null, - "_testId": "urn:uuid:a392422a-1b10-4c86-b72a-a450ffc58775", - "cell": { - "columnId": "OpSecId", - "rowId": "`refreshService` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 47567, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 145, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", - "ctx": null, - "_testId": "urn:uuid:41b356c2-2f3d-4413-8845-947c55e1d595", - "cell": { - "columnId": "Procivis One Core", - "rowId": "`refreshService` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50251, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 250, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", - "ctx": null, - "_testId": "urn:uuid:ab2eea7f-d0b0-4518-9096-124b0774cc50", - "cell": { - "columnId": "SpruceID", - "rowId": "`refreshService` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 51218, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 51, - "state": "passed", - "speed": "medium" - }, - { - "type": "test", - "title": "`refreshService` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-type-ok.json')),\n 'Failed to accept a VC with `refreshService` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:453c84e5-faac-4031-a985-072e0726d531", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`refreshService` objects MUST have a type specified." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 55409, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 232, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "`credentialSchema` objects MUST have a type specified.", - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "cells": [ - { - "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19620,27 +23704,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "592pZBhIpib8K9nZGRBWg", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:5a3af37a-beb8-48d7-9676-591fac5dbcd9", + "_testId": "urn:uuid:eaf3b3fa-080f-4a1e-b950-3bb14ad1f815", "cell": { "columnId": "ACA-py", - "rowId": "`credentialSchema` objects MUST have a type specified." + "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39558, + "_idleStart": 35864, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -19651,27 +23735,23 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"ExampleJsonSchema\":\"https://example.org/examples#ExampleJsonSchema\"}],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"id\":\"did:example:schemas/1\",\"type\":\"ExampleJsonSchema\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "ExampleJsonSchema": "https://example.org/examples#ExampleJsonSchema" - } + "https://www.w3.org/ns/credentials/v2" ], "type": [ "VerifiableCredential" ], - "credentialSchema": { - "id": "did:example:schemas/1", - "type": "ExampleJsonSchema" + "issuer": { + "description": "An Example Issuer", + "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "credentialSubject": { "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } }, "options": { "type": "Ed25519Signature2020" @@ -19751,11 +23831,15 @@ }, "operator": "doesNotReject" } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -19764,41 +23848,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "i_98q7jIzlrK3-xU4gCzC", + "type": "hook", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:49e27a60-8e11-49f9-8885-9e622fd7d423", - "cell": { - "columnId": "apicatalog.com", - "rowId": "`credentialSchema` objects MUST have a type specified." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 43570, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 823, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "SfpGK8NckLFjUiGSzXFad", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "_testId": "urn:uuid:d7769ace-de48-43c7-9805-17bb2fd54aef" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19807,34 +23889,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "GfRVzX9AFf8g7NzNr_RMO", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:6ae37497-2513-4210-b730-975239730cd2", + "_testId": "urn:uuid:8cdcab17-b977-412f-971f-3cbbb0d7375d", "cell": { - "columnId": "Digital Bazaar", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46053, + "_idleStart": 35891, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 1013, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19843,34 +23925,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "hqJo_zZ8zCJ8dBoi1WYv9", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:492e90ef-9490-4d73-953c-48ddbad2c159", + "_testId": "urn:uuid:fd78fb54-f3fc-456f-859c-2ed35bcdab9b", "cell": { - "columnId": "OpSecId", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47713, + "_idleStart": 36907, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 145, + "duration": 774, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19879,34 +23961,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jgdNvNLDx5J3rUknFegAK", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:3a829448-0945-4383-ac38-9b0aaa7cafb9", + "_testId": "urn:uuid:dc6cfabf-2a4a-4b1c-8cee-77bfcd750b66", "cell": { - "columnId": "Procivis One Core", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50501, + "_idleStart": 37681, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, + "duration": 1021, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19915,34 +23997,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "X5dPBmmiUODiL1SGd4o4-", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:c710db32-9794-426e-bd16-e9d4eca6e43f", + "_testId": "urn:uuid:aa9537f7-e89e-4e3d-873b-b5c7ab0724ed", "cell": { - "columnId": "SpruceID", - "rowId": "`credentialSchema` objects MUST have a type specified." + "columnId": "apicatalog.com", + "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51270, + "_idleStart": 38702, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 49, + "duration": 582, "state": "passed", - "speed": "medium" - }, + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "`credentialSchema` objects MUST have a type specified.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-type-ok.json')),\n 'Failed to accept a VC with `credentialSchema` with a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -19951,47 +24037,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-5-types.js", - "parent": "jkFpX5_DE7micCBbh-KPZ", - "ctx": null, - "_testId": "urn:uuid:32b54b1a-ada2-41f1-82e0-9be837a4b753", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "`credentialSchema` objects MUST have a type specified." - }, + "type": "hook", + "parent": "qtZ-zP8uDoZKNNTktzDCz", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 55641, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 237, - "state": "passed", - "speed": "slow" + "duration": 0, + "_error": null } - ] - } - ] - }, - { - "title": "Names and Descriptions", - "ctx": null, - "suites": [ + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "SfpGK8NckLFjUiGSzXFad", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "_testId": "urn:uuid:6424de9a-e1b8-40d8-a7fd-9ae5242f75ab" + }, { - "title": "ACA-py", + "title": "Digital Bazaar", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20001,11 +24079,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:15ae6bee-73b6-4132-9b8e-ff5d234bb52d", + "_testId": "urn:uuid:a2ad8511-a92b-4b0c-99ea-5d710cf33346", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20015,12 +24093,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55879, + "_idleStart": 39285, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 149, + "duration": 360, "state": "failed", "err": { "generatedMessage": false, @@ -20031,7 +24109,6 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -20041,14 +24118,14 @@ "type": [ "VerifiableCredential" ], - "name": "Example Credential", + "name": { + "@value": "Example Credential", + "@language": "en" + }, "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "options": { - "type": "Ed25519Signature2020" + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" } }, "agent": { @@ -20114,13 +24191,63 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":{\"@value\":\"Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": "ValidationError", + "message": "A validation error occured in the 'Issue Credential' validator.", + "details": { + "errors": [ + { + "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "name": "ValidationError", + "message": "should be string", + "details": { + "instance": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": { + "@value": "Example Credential", + "@language": "en" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "params": { + "type": "string" + }, + "path": ".credential.name", + "public": true, + "schemaPath": "#/properties/credential/properties/name/type", + "schema": { + "description": "", + "title": "" + }, + "value": { + "@value": "Example Credential", + "@language": "en" + } + }, + "cause": null + } + ], + "httpStatusCode": 400 + }, + "cause": null, + "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "type": "ValidationError" } }, "operator": "doesNotReject" @@ -20129,7 +24256,7 @@ { "type": "test", "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20139,11 +24266,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:cea8b81c-08e9-4188-96da-a7a3e1a86bb4", + "_testId": "urn:uuid:3e539c06-b497-41f1-99f5-7ede8e33b05c", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20153,12 +24280,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56028, + "_idleStart": 39645, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 33, + "duration": 226, "state": "failed", "err": { "generatedMessage": false, @@ -20169,7 +24296,6 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -20179,14 +24305,14 @@ "type": [ "VerifiableCredential" ], - "description": "An Example Credential", + "description": { + "@value": "An Example Credential", + "@language": "en" + }, "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "options": { - "type": "Ed25519Signature2020" + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" } }, "agent": { @@ -20252,13 +24378,63 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": "ValidationError", + "message": "A validation error occured in the 'Issue Credential' validator.", + "details": { + "errors": [ + { + "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "name": "ValidationError", + "message": "should be string", + "details": { + "instance": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "description": { + "@value": "An Example Credential", + "@language": "en" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "params": { + "type": "string" + }, + "path": ".credential.description", + "public": true, + "schemaPath": "#/properties/credential/properties/description/type", + "schema": { + "description": "", + "title": "" + }, + "value": { + "@value": "An Example Credential", + "@language": "en" + } + }, + "cause": null + } + ], + "httpStatusCode": 400 + }, + "cause": null, + "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "type": "ValidationError" } }, "operator": "doesNotReject" @@ -20267,7 +24443,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20277,11 +24453,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:39d83149-1c96-4fc4-b78a-bb558e036056", + "_testId": "urn:uuid:bb0dc63a-bf5d-435c-b2cb-44eb75949232", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20291,12 +24467,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56062, + "_idleStart": 39871, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 335, "state": "failed", "err": { "generatedMessage": false, @@ -20307,7 +24483,6 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -20318,15 +24493,16 @@ "VerifiableCredential" ], "issuer": { - "name": "ExampleIssuer", - "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": { + "@value": "ExampleIssuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, "credentialSubject": { "id": "did:example:subject" } - }, - "options": { - "type": "Ed25519Signature2020" } }, "agent": { @@ -20392,13 +24568,36 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": "DataError", + "message": "Invalid credential.", + "details": { + "error": { + "message": "Safe mode validation error.", + "name": "jsonld.ValidationError", + "details": { + "event": { + "type": [ + "JsonLdEvent" + ], + "code": "rdfDirection not set", + "level": "warning", + "message": "rdfDirection not set for @direction.", + "details": {} + } + } + }, + "httpStatusCode": 400 + }, + "cause": null, + "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "DataError" } }, "operator": "doesNotReject" @@ -20407,7 +24606,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20417,11 +24616,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:eb680b06-a70b-4d74-aba1-3bd4f3e3e2e3", + "_testId": "urn:uuid:61b5aaf2-9ecb-4713-ae56-acf011357402", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20431,12 +24630,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56092, + "_idleStart": 40207, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 37, + "duration": 647, "state": "failed", "err": { "generatedMessage": false, @@ -20447,7 +24646,6 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -20458,15 +24656,16 @@ "VerifiableCredential" ], "issuer": { - "description": "An Example Issuer", - "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "description": { + "@value": "An Example Issuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, "credentialSubject": { "id": "did:example:subject" } - }, - "options": { - "type": "Ed25519Signature2020" } }, "agent": { @@ -20532,13 +24731,36 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": "DataError", + "message": "Invalid credential.", + "details": { + "error": { + "message": "Safe mode validation error.", + "name": "jsonld.ValidationError", + "details": { + "event": { + "type": [ + "JsonLdEvent" + ], + "code": "rdfDirection not set", + "level": "warning", + "message": "rdfDirection not set for @direction.", + "details": {} + } + } + }, + "httpStatusCode": 400 + }, + "cause": null, + "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "DataError" } }, "operator": "doesNotReject" @@ -20550,196 +24772,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "URZBSVaItWZjP67kIfEP8", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:26e4e857-8f1f-4f97-a743-2ea44744e2bf" - }, - { - "title": "apicatalog.com", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", - "ctx": null, - "_testId": "urn:uuid:d619e69f-600c-4f37-a7e1-6c3f536b42d4", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 56130, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1398, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", - "ctx": null, - "_testId": "urn:uuid:fab8eb08-4c3f-4098-aa90-f66698bd012f", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 57529, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1335, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", - "ctx": null, - "_testId": "urn:uuid:a39f30ea-b942-44d3-a986-420eb685e7af", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 58864, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1404, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", - "ctx": null, - "_testId": "urn:uuid:e5662749-6c6d-4f87-a786-63a32f65800d", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 60269, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1008, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -20750,7 +24783,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "3ntTuH6dnmcx7P7mz0yPr", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -20769,19 +24802,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", + "parent": "SfpGK8NckLFjUiGSzXFad", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:bfbb18eb-3d35-4882-aa01-10aae3525b9a" + "_testId": "urn:uuid:37d64f65-5d77-4588-91e6-b9a7536736ea" }, { - "title": "Digital Bazaar", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20791,11 +24824,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:ef56b4a3-89fc-44b1-a243-5b97de0115f0", + "_testId": "urn:uuid:1dbc8021-187a-4145-9369-10d7ca9be9d6", "cell": { - "columnId": "Digital Bazaar", + "columnId": "OpSecId", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20805,12 +24838,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61278, + "_idleStart": 40854, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 369, + "duration": 136, "state": "failed", "err": { "generatedMessage": false, @@ -20821,6 +24854,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -20830,14 +24864,15 @@ "type": [ "VerifiableCredential" ], - "name": { - "@value": "Example Credential", - "@language": "en" - }, + "name": "Example Credential", "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -20889,78 +24924,25 @@ 429, 500, 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":{\"@value\":\"Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" - }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 400, - "data": { - "name": "ValidationError", - "message": "A validation error occured in the 'Issue Credential' validator.", - "details": { - "errors": [ - { - "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "name": "ValidationError", - "message": "should be string", - "details": { - "instance": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "name": { - "@value": "Example Credential", - "@language": "en" - }, - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" - } - }, - "params": { - "type": "string" - }, - "path": ".credential.name", - "public": true, - "schemaPath": "#/properties/credential/properties/name/type", - "schema": { - "description": "", - "title": "" - }, - "value": { - "@value": "Example Credential", - "@language": "en" - } - }, - "cause": null - } + 503, + 504 ], - "httpStatusCode": 400 + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null }, - "cause": null, - "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "type": "ValidationError" - } + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -20968,7 +24950,7 @@ { "type": "test", "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20978,11 +24960,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:4183b715-6caf-458c-a4f0-e0edbcf9c5b2", + "_testId": "urn:uuid:5a089442-6a07-4232-ad97-a2324845cfe2", "cell": { - "columnId": "Digital Bazaar", + "columnId": "OpSecId", "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -20992,12 +24974,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61647, + "_idleStart": 40991, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 222, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -21008,6 +24990,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -21017,14 +25000,15 @@ "type": [ "VerifiableCredential" ], - "description": { - "@value": "An Example Credential", - "@language": "en" - }, + "description": "An Example Credential", "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -21090,64 +25074,11 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 400, - "data": { - "name": "ValidationError", - "message": "A validation error occured in the 'Issue Credential' validator.", - "details": { - "errors": [ - { - "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "name": "ValidationError", - "message": "should be string", - "details": { - "instance": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "description": { - "@value": "An Example Credential", - "@language": "en" - }, - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" - } - }, - "params": { - "type": "string" - }, - "path": ".credential.description", - "public": true, - "schemaPath": "#/properties/credential/properties/description/type", - "schema": { - "description": "", - "title": "" - }, - "value": { - "@value": "An Example Credential", - "@language": "en" - } - }, - "cause": null - } - ], - "httpStatusCode": 400 - }, - "cause": null, - "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "type": "ValidationError" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -21155,7 +25086,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21165,11 +25096,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:b34311dd-426b-4826-b243-86529ea6f617", + "_testId": "urn:uuid:03de0b3d-8154-413e-9762-990cea8c4aeb", "cell": { - "columnId": "Digital Bazaar", + "columnId": "OpSecId", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21179,12 +25110,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61869, + "_idleStart": 41015, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 274, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -21195,6 +25126,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -21205,16 +25137,16 @@ "VerifiableCredential" ], "issuer": { - "name": { - "@value": "ExampleIssuer", - "@language": "en", - "@direction": "ltr" - }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "name": "ExampleIssuer", + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "credentialSubject": { "id": "did:example:subject" } + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -21280,37 +25212,11 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 400, - "data": { - "name": "DataError", - "message": "Invalid credential.", - "details": { - "error": { - "message": "Safe mode validation error.", - "name": "jsonld.ValidationError", - "details": { - "event": { - "type": [ - "JsonLdEvent" - ], - "code": "rdfDirection not set", - "level": "warning", - "message": "rdfDirection not set for @direction.", - "details": {} - } - } - }, - "httpStatusCode": 400 - }, - "cause": null, - "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "type": "DataError" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -21318,7 +25224,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21328,11 +25234,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:c40a7892-1ebf-4980-a978-fbf176e49427", + "_testId": "urn:uuid:cb62ae17-0e6c-4996-a883-38484944474d", "cell": { - "columnId": "Digital Bazaar", + "columnId": "OpSecId", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21342,12 +25248,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62144, + "_idleStart": 41039, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 359, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -21358,6 +25264,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -21368,16 +25275,16 @@ "VerifiableCredential" ], "issuer": { - "description": { - "@value": "An Example Issuer", - "@language": "en", - "@direction": "ltr" - }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "description": "An Example Issuer", + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "credentialSubject": { "id": "did:example:subject" } + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -21443,37 +25350,11 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 400, - "data": { - "name": "DataError", - "message": "Invalid credential.", - "details": { - "error": { - "message": "Safe mode validation error.", - "name": "jsonld.ValidationError", - "details": { - "event": { - "type": [ - "JsonLdEvent" - ], - "code": "rdfDirection not set", - "level": "warning", - "message": "rdfDirection not set for @direction.", - "details": {} - } - } - }, - "httpStatusCode": 400 - }, - "cause": null, - "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "type": "DataError" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -21484,7 +25365,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -21495,7 +25376,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -21514,19 +25395,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", + "parent": "SfpGK8NckLFjUiGSzXFad", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:20285939-e329-4a88-9fa4-2eeda251beef" + "_testId": "urn:uuid:d8e15f9b-e25d-4425-ae97-87e3fcd0a3a6" }, { - "title": "OpSecId", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21536,11 +25417,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:71dcf855-8bf6-4316-8662-8000ef85bb72", + "_testId": "urn:uuid:69966990-4b90-400b-8a9d-92f1e04d77e1", "cell": { - "columnId": "OpSecId", + "columnId": "Procivis One Core", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21550,19 +25431,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62502, + "_idleStart": 41063, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 642, + "duration": 1259, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21572,11 +25453,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:05a0ecd3-4ac8-48eb-a29e-3bfa5cee19c4", + "_testId": "urn:uuid:e0f8e09a-c970-4234-8201-5620b0891e3f", "cell": { - "columnId": "OpSecId", + "columnId": "Procivis One Core", "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21586,19 +25467,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63144, + "_idleStart": 42323, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 465, + "duration": 835, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21608,11 +25489,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:fa51ae41-6fba-4fab-acb8-3359a6f047f9", + "_testId": "urn:uuid:c7065e9a-c030-46b4-b5f1-2cc0478cccfd", "cell": { - "columnId": "OpSecId", + "columnId": "Procivis One Core", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21622,19 +25503,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63610, + "_idleStart": 43159, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 471, + "duration": 865, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21644,11 +25525,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:e5e2b5ee-34bc-44da-8dcc-f65ae3a8deb9", + "_testId": "urn:uuid:dc7b349f-7c52-4b9c-a300-311b3e34c8bf", "cell": { - "columnId": "OpSecId", + "columnId": "Procivis One Core", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21658,12 +25539,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64080, + "_idleStart": 44023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 450, + "duration": 875, "state": "passed", "speed": "slow" } @@ -21673,7 +25554,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -21684,7 +25565,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -21703,19 +25584,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", + "parent": "SfpGK8NckLFjUiGSzXFad", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:60c014c4-bf83-48db-908f-74c255defe3c" + "_testId": "urn:uuid:5faca9c8-075a-45b5-b63e-7a78a0242b6c" }, { - "title": "Procivis One Core", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21725,11 +25606,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:d3d64caf-3f67-4d89-a836-575173b44edc", + "_testId": "urn:uuid:a1931a21-43df-498b-81f6-4003e7d7315c", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21739,19 +25620,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64531, + "_idleStart": 44899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1142, + "duration": 355, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21761,11 +25642,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:73373c85-4ed4-4c5b-b4b8-bca08eefc362", + "_testId": "urn:uuid:96813440-fb23-43e0-8c6b-8891278fd3e1", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21775,19 +25656,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 65673, + "_idleStart": 45254, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 732, + "duration": 303, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21797,11 +25678,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:0b90a504-b285-4286-b68b-7d9177addb83", + "_testId": "urn:uuid:02d0f627-f062-4057-a3c5-7dc4205dbe9b", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21811,19 +25692,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 66406, + "_idleStart": 45558, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 732, + "duration": 322, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21833,11 +25714,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:702ad4f5-d6c1-4914-81df-9db0e0e154c5", + "_testId": "urn:uuid:a80c207b-b476-4381-98bf-f5d44acbb2a5", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21847,12 +25728,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 67138, + "_idleStart": 45881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 851, + "duration": 296, "state": "passed", "speed": "slow" } @@ -21862,7 +25743,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -21873,13 +25754,13 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "_error": null } ], @@ -21892,19 +25773,376 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", + "parent": "SfpGK8NckLFjUiGSzXFad", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:160b7646-b489-441f-ae5e-437aae751bf2" + "_testId": "urn:uuid:fb7ca123-eeef-4023-be70-e34a6ea04e69" }, { - "title": "SpruceID", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "_testId": "urn:uuid:8b4698c7-f645-4582-bfe1-ba58fcabf615", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 46178, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 709, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "_testId": "urn:uuid:768fad90-3251-4876-a813-de3da58496f8", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 46888, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 681, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "_testId": "urn:uuid:e666fdf9-0017-4134-99d2-5655f65c43d1", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 47569, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 723, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "_testId": "urn:uuid:8683706a-b756-4f13-bec5-71ec8bb72d7f", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 48292, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 798, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "SfpGK8NckLFjUiGSzXFad", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "_testId": "urn:uuid:3ebb3736-d14a-4c95-b955-8b709fd817dd" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:a313663a-3749-4553-9bc7-160c49390ff1", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ + { + "id": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "cells": [ + { + "type": "test", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", + "ctx": null, + "_testId": "urn:uuid:ede016f7-4d20-4484-8e3a-4621388caed1", + "cell": { + "columnId": "ACA-py", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35687, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 121, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": "Example Credential", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21914,11 +26152,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:c8c7f0e3-633c-4fec-bc9c-5539ee9ff8e2", + "_testId": "urn:uuid:8cdcab17-b977-412f-971f-3cbbb0d7375d", "cell": { - "columnId": "SpruceID", + "columnId": "apicatalog.com", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -21928,55 +26166,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 67989, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 214, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", - "ctx": null, - "_testId": "urn:uuid:5e1fe0f9-88d7-465e-8ddc-d877fb98b533", - "cell": { - "columnId": "SpruceID", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 68203, + "_idleStart": 35891, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 211, + "duration": 1013, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -21986,12 +26188,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:36366b87-7d2b-42e7-8886-f39d395b9389", + "_testId": "urn:uuid:a2ad8511-a92b-4b0c-99ea-5d710cf33346", "cell": { - "columnId": "SpruceID", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "columnId": "Digital Bazaar", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, @@ -22000,100 +26202,170 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 68414, + "_idleStart": 39285, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 172, - "state": "passed", - "speed": "slow" + "duration": 360, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": { + "@value": "Example Credential", + "@language": "en" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":{\"@value\":\"Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + }, + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 400, + "data": { + "name": "ValidationError", + "message": "A validation error occured in the 'Issue Credential' validator.", + "details": { + "errors": [ + { + "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "name": "ValidationError", + "message": "should be string", + "details": { + "instance": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": { + "@value": "Example Credential", + "@language": "en" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "params": { + "type": "string" + }, + "path": ".credential.name", + "public": true, + "schemaPath": "#/properties/credential/properties/name/type", + "schema": { + "description": "", + "title": "" + }, + "value": { + "@value": "Example Credential", + "@language": "en" + } + }, + "cause": null + } + ], + "httpStatusCode": 400 + }, + "cause": null, + "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "type": "ValidationError" + } + }, + "operator": "doesNotReject" + } }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", - "ctx": null, - "_testId": "urn:uuid:3ea7ff78-ede6-474f-97b9-7f9dd9deb9da", - "cell": { - "columnId": "SpruceID", - "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 68586, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 174, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "eP5e7-5ZdJe8heYmjzK14", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:ce6d487b-77b9-49b3-b634-d579c3366f11" - }, - { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ { "type": "test", "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22103,11 +26375,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:97550bda-a22e-42cd-927b-428cbf43e6b8", + "_testId": "urn:uuid:1dbc8021-187a-4145-9369-10d7ca9be9d6", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "OpSecId", "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -22117,19 +26389,119 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 68761, + "_idleStart": 40854, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1192, - "state": "passed", - "speed": "slow" + "duration": 136, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "name": "Example Credential", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22139,33 +26511,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:924fa1b6-f9ac-486a-bc6d-c747c0a4a5fd", + "_testId": "urn:uuid:69966990-4b90-400b-8a9d-92f1e04d77e1", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "columnId": "Procivis One Core", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 69953, + "_idleStart": 41063, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1315, + "duration": 1259, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22175,12 +26547,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:81511a90-c6e7-4882-aa03-cffc1d90c89e", + "_testId": "urn:uuid:a1931a21-43df-498b-81f6-4003e7d7315c", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "columnId": "SpruceID", + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, @@ -22189,19 +26561,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 71268, + "_idleStart": 44899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1306, + "duration": 355, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22211,108 +26583,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "WbImlTL7pDeudB8QLg61f", "ctx": null, - "_testId": "urn:uuid:cf8ce01b-2999-49cc-b76a-41a9d83b789f", + "_testId": "urn:uuid:8b4698c7-f645-4582-bfe1-ba58fcabf615", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 72574, + "_idleStart": 46178, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1546, + "duration": 709, "state": "passed", "speed": "slow" } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "6Tzqetu54DcMwPB1hkoeD", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "_testId": "urn:uuid:5209b081-0917-4462-ae02-020d214b73e0" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:e9df75dd-b854-4c1c-b8aa-09bcfbd3a2d5", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + ] + }, { - "id": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "id": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "cells": [ { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22322,26 +26625,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:15ae6bee-73b6-4132-9b8e-ff5d234bb52d", + "_testId": "urn:uuid:794c7793-1cba-4a64-905d-94a21851f471", "cell": { "columnId": "ACA-py", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55879, + "_idleStart": 35809, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 149, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -22352,7 +26655,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":\"Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -22362,7 +26665,7 @@ "type": [ "VerifiableCredential" ], - "name": "Example Credential", + "description": "An Example Credential", "credentialSubject": { "id": "did:example:subject" }, @@ -22449,8 +26752,8 @@ }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22460,33 +26763,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:d619e69f-600c-4f37-a7e1-6c3f536b42d4", + "_testId": "urn:uuid:fd78fb54-f3fc-456f-859c-2ed35bcdab9b", "cell": { "columnId": "apicatalog.com", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56130, + "_idleStart": 36907, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1398, + "duration": 774, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22496,26 +26799,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:ef56b4a3-89fc-44b1-a243-5b97de0115f0", + "_testId": "urn:uuid:3e539c06-b497-41f1-99f5-7ede8e33b05c", "cell": { "columnId": "Digital Bazaar", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61278, + "_idleStart": 39645, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 369, + "duration": 226, "state": "failed", "err": { "generatedMessage": false, @@ -22535,8 +26838,8 @@ "type": [ "VerifiableCredential" ], - "name": { - "@value": "Example Credential", + "description": { + "@value": "An Example Credential", "@language": "en" }, "credentialSubject": { @@ -22609,7 +26912,7 @@ "timeout": 10000, "signal": {}, "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"name\":{\"@value\":\"Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, "name": "HTTPError", "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", @@ -22632,8 +26935,8 @@ "type": [ "VerifiableCredential" ], - "name": { - "@value": "Example Credential", + "description": { + "@value": "An Example Credential", "@language": "en" }, "credentialSubject": { @@ -22645,15 +26948,15 @@ "params": { "type": "string" }, - "path": ".credential.name", + "path": ".credential.description", "public": true, - "schemaPath": "#/properties/credential/properties/name/type", + "schemaPath": "#/properties/credential/properties/description/type", "schema": { "description": "", "title": "" }, "value": { - "@value": "Example Credential", + "@value": "An Example Credential", "@language": "en" } }, @@ -22672,8 +26975,8 @@ }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22683,33 +26986,133 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:71dcf855-8bf6-4316-8662-8000ef85bb72", + "_testId": "urn:uuid:5a089442-6a07-4232-ad97-a2324845cfe2", "cell": { "columnId": "OpSecId", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62502, + "_idleStart": 40991, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 642, - "state": "passed", - "speed": "slow" + "duration": 24, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "description": "An Example Credential", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22719,33 +27122,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:d3d64caf-3f67-4d89-a836-575173b44edc", + "_testId": "urn:uuid:e0f8e09a-c970-4234-8201-5620b0891e3f", "cell": { "columnId": "Procivis One Core", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64531, + "_idleStart": 42323, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1142, + "duration": 835, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22755,33 +27158,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:c8c7f0e3-633c-4fec-bc9c-5539ee9ff8e2", + "_testId": "urn:uuid:96813440-fb23-43e0-8c6b-8891278fd3e1", "cell": { "columnId": "SpruceID", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 67989, + "_idleStart": 45254, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 214, + "duration": 303, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`)),\n 'Failed to accept a VC with a `name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`)),\n 'Failed to accept a VC without a `name` property.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`)),\n 'Failed to accept a VC using `name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `name` containing extra properties.');\n }", + "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22791,39 +27194,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "WbImlTL7pDeudB8QLg61f", "ctx": null, - "_testId": "urn:uuid:97550bda-a22e-42cd-927b-428cbf43e6b8", + "_testId": "urn:uuid:768fad90-3251-4876-a813-de3da58496f8", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 68761, + "_idleStart": 46888, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1192, + "duration": 681, "state": "passed", "speed": "slow" } ] }, { - "id": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "id": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "cells": [ { "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22833,26 +27236,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "tepGmRZSQ6agH7ePyfSVY", "ctx": null, - "_testId": "urn:uuid:cea8b81c-08e9-4188-96da-a7a3e1a86bb4", + "_testId": "urn:uuid:d7c56785-0ae8-47fc-b763-9f2a21fa9094", "cell": { "columnId": "ACA-py", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56028, + "_idleStart": 35836, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 33, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -22863,7 +27266,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":\"An Example Credential\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -22873,11 +27276,13 @@ "type": [ "VerifiableCredential" ], - "description": "An Example Credential", + "issuer": { + "name": "ExampleIssuer", + "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, "credentialSubject": { "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } }, "options": { "type": "Ed25519Signature2020" @@ -22960,8 +27365,8 @@ }, { "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -22971,33 +27376,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:fab8eb08-4c3f-4098-aa90-f66698bd012f", + "_testId": "urn:uuid:dc6cfabf-2a4a-4b1c-8cee-77bfcd750b66", "cell": { "columnId": "apicatalog.com", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57529, + "_idleStart": 37681, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1335, + "duration": 1021, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23007,26 +27412,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:4183b715-6caf-458c-a4f0-e0edbcf9c5b2", + "_testId": "urn:uuid:bb0dc63a-bf5d-435c-b2cb-44eb75949232", "cell": { "columnId": "Digital Bazaar", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61647, + "_idleStart": 39871, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 222, + "duration": 335, "state": "failed", "err": { "generatedMessage": false, @@ -23046,14 +27451,17 @@ "type": [ "VerifiableCredential" ], - "description": { - "@value": "An Example Credential", - "@language": "en" + "issuer": { + "name": { + "@value": "ExampleIssuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, "credentialSubject": { "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } } }, "agent": { @@ -23120,221 +27528,44 @@ "timeout": 10000, "signal": {}, "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, "name": "HTTPError", "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "name": "ValidationError", - "message": "A validation error occured in the 'Issue Credential' validator.", + "name": "DataError", + "message": "Invalid credential.", "details": { - "errors": [ - { - "stack": "ValidationError: should be string\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "name": "ValidationError", - "message": "should be string", - "details": { - "instance": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "description": { - "@value": "An Example Credential", - "@language": "en" - }, - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" - } - }, - "params": { - "type": "string" - }, - "path": ".credential.description", - "public": true, - "schemaPath": "#/properties/credential/properties/description/type", - "schema": { - "description": "", - "title": "" - }, - "value": { - "@value": "An Example Credential", - "@language": "en" - } - }, - "cause": null + "error": { + "message": "Safe mode validation error.", + "name": "jsonld.ValidationError", + "details": { + "event": { + "type": [ + "JsonLdEvent" + ], + "code": "rdfDirection not set", + "level": "warning", + "message": "rdfDirection not set for @direction.", + "details": {} + } } - ], + }, "httpStatusCode": 400 }, "cause": null, - "stack": "ValidationError: A validation error occured in the 'Issue Credential' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", - "type": "ValidationError" + "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "DataError" } }, "operator": "doesNotReject" } }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", - "ctx": null, - "_testId": "urn:uuid:05a0ecd3-4ac8-48eb-a29e-3bfa5cee19c4", - "cell": { - "columnId": "OpSecId", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 63144, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 465, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", - "ctx": null, - "_testId": "urn:uuid:73373c85-4ed4-4c5b-b4b8-bca08eefc362", - "cell": { - "columnId": "Procivis One Core", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 65673, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 732, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", - "ctx": null, - "_testId": "urn:uuid:5e1fe0f9-88d7-465e-8ddc-d877fb98b533", - "cell": { - "columnId": "SpruceID", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 68203, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 211, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`)),\n 'Failed to accept a VC with `description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`)),\n 'Failed to accept a VC with `description` missing.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`)),\n 'Failed to accept a VC using `description` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `description` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `description` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", - "ctx": null, - "_testId": "urn:uuid:924fa1b6-f9ac-486a-bc6d-c747c0a4a5fd", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 69953, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1315, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "cells": [ { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23344,11 +27575,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:39d83149-1c96-4fc4-b78a-bb558e036056", + "_testId": "urn:uuid:03de0b3d-8154-413e-9762-990cea8c4aeb", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -23358,12 +27589,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56062, + "_idleStart": 41015, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -23374,7 +27605,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":\"ExampleIssuer\",\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -23386,14 +27617,15 @@ ], "issuer": { "name": "ExampleIssuer", - "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "credentialSubject": { "id": "did:example:subject" } }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -23462,11 +27694,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -23474,7 +27703,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23484,11 +27713,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:a39f30ea-b942-44d3-a986-420eb685e7af", + "_testId": "urn:uuid:c7065e9a-c030-46b4-b5f1-2cc0478cccfd", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -23498,19 +27727,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58864, + "_idleStart": 43159, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1404, + "duration": 865, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23520,11 +27749,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:b34311dd-426b-4826-b243-86529ea6f617", + "_testId": "urn:uuid:02d0f627-f062-4057-a3c5-7dc4205dbe9b", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -23534,12 +27763,90 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61869, + "_idleStart": 45558, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 274, + "duration": 322, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "WbImlTL7pDeudB8QLg61f", + "ctx": null, + "_testId": "urn:uuid:e666fdf9-0017-4134-99d2-5655f65c43d1", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 47569, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 723, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "id": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "cells": [ + { + "type": "test", + "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", + "parent": "tepGmRZSQ6agH7ePyfSVY", + "ctx": null, + "_testId": "urn:uuid:eaf3b3fa-080f-4a1e-b950-3bb14ad1f815", + "cell": { + "columnId": "ACA-py", + "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35864, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -23550,6 +27857,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -23560,16 +27868,15 @@ "VerifiableCredential" ], "issuer": { - "name": { - "@value": "ExampleIssuer", - "@language": "en", - "@direction": "ltr" - }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "description": "An Example Issuer", + "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "credentialSubject": { "id": "did:example:subject" } + }, + "options": { + "type": "Ed25519Signature2020" } }, "agent": { @@ -23635,36 +27942,13 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", "status": 400, "data": { - "name": "DataError", - "message": "Invalid credential.", - "details": { - "error": { - "message": "Safe mode validation error.", - "name": "jsonld.ValidationError", - "details": { - "event": { - "type": [ - "JsonLdEvent" - ], - "code": "rdfDirection not set", - "level": "warning", - "message": "rdfDirection not set for @direction.", - "details": {} - } - } - }, - "httpStatusCode": 400 - }, - "cause": null, - "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "type": "DataError" + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" } }, "operator": "doesNotReject" @@ -23672,80 +27956,8 @@ }, { "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", - "ctx": null, - "_testId": "urn:uuid:fa51ae41-6fba-4fab-acb8-3359a6f047f9", - "cell": { - "columnId": "OpSecId", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 63610, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 471, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", - "ctx": null, - "_testId": "urn:uuid:0b90a504-b285-4286-b68b-7d9177addb83", - "cell": { - "columnId": "Procivis One Core", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 66406, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 732, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", + "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23755,75 +27967,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", + "parent": "qtZ-zP8uDoZKNNTktzDCz", "ctx": null, - "_testId": "urn:uuid:36366b87-7d2b-42e7-8886-f39d395b9389", + "_testId": "urn:uuid:aa9537f7-e89e-4e3d-873b-b5c7ab0724ed", "cell": { - "columnId": "SpruceID", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." + "columnId": "apicatalog.com", + "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", + "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 68414, + "_idleStart": 38702, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 172, + "duration": 582, "state": "passed", "speed": "slow" }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.name`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` in a defined language.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.name` with language & direction ' +\n 'expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`)),\n 'Failed to accept a VC with `issuer.name` in multiple languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", - "ctx": null, - "_testId": "urn:uuid:81511a90-c6e7-4882-aa03-cffc1d90c89e", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20name%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 71268, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1306, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "cells": [ { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23833,11 +28003,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "URZBSVaItWZjP67kIfEP8", + "parent": "W_pKefcc839SS-YfjGPUJ", "ctx": null, - "_testId": "urn:uuid:eb680b06-a70b-4d74-aba1-3bd4f3e3e2e3", + "_testId": "urn:uuid:61b5aaf2-9ecb-4713-ae56-acf011357402", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -23847,12 +28017,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56092, + "_idleStart": 40207, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 37, + "duration": 647, "state": "failed", "err": { "generatedMessage": false, @@ -23863,7 +28033,6 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -23874,15 +28043,16 @@ "VerifiableCredential" ], "issuer": { - "description": "An Example Issuer", - "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "description": { + "@value": "An Example Issuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, "credentialSubject": { "id": "did:example:subject" } - }, - "options": { - "type": "Ed25519Signature2020" } }, "agent": { @@ -23948,13 +28118,36 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "name": "DataError", + "message": "Invalid credential.", + "details": { + "error": { + "message": "Safe mode validation error.", + "name": "jsonld.ValidationError", + "details": { + "event": { + "type": [ + "JsonLdEvent" + ], + "code": "rdfDirection not set", + "level": "warning", + "message": "rdfDirection not set for @direction.", + "details": {} + } + } + }, + "httpStatusCode": 400 + }, + "cause": null, + "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "DataError" } }, "operator": "doesNotReject" @@ -23963,7 +28156,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -23973,47 +28166,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "3ntTuH6dnmcx7P7mz0yPr", + "parent": "YuXCl2OLGCXCWkcgASWUW", "ctx": null, - "_testId": "urn:uuid:e5662749-6c6d-4f87-a786-63a32f65800d", + "_testId": "urn:uuid:cb62ae17-0e6c-4996-a883-38484944474d", "cell": { - "columnId": "apicatalog.com", - "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 60269, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1008, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "1VvCxhuD6Yfnsnq0K7e2Z", - "ctx": null, - "_testId": "urn:uuid:c40a7892-1ebf-4980-a978-fbf176e49427", - "cell": { - "columnId": "Digital Bazaar", + "columnId": "OpSecId", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." }, "_events": {}, @@ -24023,12 +28180,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62144, + "_idleStart": 41039, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 359, + "duration": 24, "state": "failed", "err": { "generatedMessage": false, @@ -24039,6 +28196,7 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":\"An Example Issuer\",\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -24049,16 +28207,16 @@ "VerifiableCredential" ], "issuer": { - "description": { - "@value": "An Example Issuer", - "@language": "en", - "@direction": "ltr" - }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "description": "An Example Issuer", + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "credentialSubject": { "id": "did:example:subject" } + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -24124,37 +28282,11 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 400, - "data": { - "name": "DataError", - "message": "Invalid credential.", - "details": { - "error": { - "message": "Safe mode validation error.", - "name": "jsonld.ValidationError", - "details": { - "event": { - "type": [ - "JsonLdEvent" - ], - "code": "rdfDirection not set", - "level": "warning", - "message": "rdfDirection not set for @direction.", - "details": {} - } - } - }, - "httpStatusCode": 400 - }, - "cause": null, - "stack": "DataError: Invalid credential.\n at _throwWrappedError (file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:141:17)\n at file:///home/node/app/node_modules/@bedrock/vc-issuer/lib/http.js:115:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "type": "DataError" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -24162,43 +28294,7 @@ { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "4AOYi-yHPehcYQuvyr99B", - "ctx": null, - "_testId": "urn:uuid:e5e2b5ee-34bc-44da-8dcc-f65ae3a8deb9", - "cell": { - "columnId": "OpSecId", - "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 64080, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 450, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24208,9 +28304,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "b0T_ROoj7PEeTomcpwge4", + "parent": "JrBDlJqSaGBifi58lqAlO", "ctx": null, - "_testId": "urn:uuid:702ad4f5-d6c1-4914-81df-9db0e0e154c5", + "_testId": "urn:uuid:dc7b349f-7c52-4b9c-a300-311b3e34c8bf", "cell": { "columnId": "Procivis One Core", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." @@ -24222,19 +28318,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 67138, + "_idleStart": 44023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 851, + "duration": 875, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24244,9 +28340,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "eP5e7-5ZdJe8heYmjzK14", + "parent": "C2UlhunYDJsLkgKUNt2E8", "ctx": null, - "_testId": "urn:uuid:3ea7ff78-ede6-474f-97b9-7f9dd9deb9da", + "_testId": "urn:uuid:a80c207b-b476-4381-98bf-f5d44acbb2a5", "cell": { "columnId": "SpruceID", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." @@ -24258,19 +28354,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 68586, + "_idleStart": 45881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 174, + "duration": 296, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#names-and-descriptions:~:text=If%20present%2C%20the%20value%20of%20the%20description%20property%20MUST%20be%20a%20string%20or%20a%20language%20value%20object%20as%20described%20in%2011.1%20Language%20and%20Base%20Direction.`;\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` as a string.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`)),\n 'Failed to accept a VC without `issuer.description`.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` in a defined ' +\n 'language.');\n await assert.doesNotReject(endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`)),\n 'Failed to accept a VC using `issuer.description` with language & ' +\n 'direction expressed.');\n await assert.doesNotReject(endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`)),\n 'Failed to accept a VC with `issuer.description` in multiple ' +\n 'languages.');\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)),\n\n 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24280,9 +28376,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-6-names-and-descriptions.js", - "parent": "lH0Jnl71Hj_tV1OwyYtMa", + "parent": "WbImlTL7pDeudB8QLg61f", "ctx": null, - "_testId": "urn:uuid:cf8ce01b-2999-49cc-b76a-41a9d83b789f", + "_testId": "urn:uuid:8683706a-b756-4f13-bec5-71ec8bb72d7f", "cell": { "columnId": "VC Issuer Mock", "rowId": "If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction." @@ -24294,12 +28390,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 72574, + "_idleStart": 48292, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1546, + "duration": 798, "state": "passed", "speed": "slow" } @@ -24329,9 +28425,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "qczkxiGYntvgKzUfHHJGA", + "parent": "9FCz_6bnAuMX3z1p55dih", "ctx": null, - "_testId": "urn:uuid:ee8e5f65-b85f-41b6-98c5-78c59f61df53", + "_testId": "urn:uuid:3db1467a-2527-4f3b-bf2d-fac2b0be7bba", "cell": { "columnId": "ACA-py", "rowId": "A verifiable credential MUST have an issuer property." @@ -24343,12 +28439,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74121, + "_idleStart": 49091, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 205, "state": "failed", "err": { "response": {}, @@ -24451,7 +28547,7 @@ { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24461,9 +28557,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "qczkxiGYntvgKzUfHHJGA", + "parent": "9FCz_6bnAuMX3z1p55dih", "ctx": null, - "_testId": "urn:uuid:fccc9c80-2abc-4a6f-ae24-6c8d5f662094", + "_testId": "urn:uuid:bfea5a51-2a35-4bb1-84c0-e8b57584809f", "cell": { "columnId": "ACA-py", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -24475,12 +28571,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74213, + "_idleStart": 49297, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -24604,13 +28700,13 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "qczkxiGYntvgKzUfHHJGA", + "parent": "9FCz_6bnAuMX3z1p55dih", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "_error": null } ], @@ -24623,9 +28719,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:b83df135-2134-4ba2-ad84-5fa88de3e8af" + "_testId": "urn:uuid:850dcbb9-1695-4c8d-970c-937c11f63910" }, { "title": "apicatalog.com", @@ -24645,9 +28741,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Uwd3Mgx_OIsmNMFaqC0TF", + "parent": "HF7AHXLSTXOfzP4GsGW_I", "ctx": null, - "_testId": "urn:uuid:d711f995-a079-4b97-8dd6-d01987673bf1", + "_testId": "urn:uuid:eba5b0a3-085a-4119-8390-c1bcb1ad34dc", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable credential MUST have an issuer property." @@ -24659,19 +28755,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74240, + "_idleStart": 49326, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 527, + "duration": 394, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24681,9 +28777,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Uwd3Mgx_OIsmNMFaqC0TF", + "parent": "HF7AHXLSTXOfzP4GsGW_I", "ctx": null, - "_testId": "urn:uuid:ebc7387c-522d-4038-bba6-0bfd5c7fd797", + "_testId": "urn:uuid:1059fb58-4419-451c-afd9-0acaeaf270ef", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -24695,19 +28791,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74768, + "_idleStart": 49720, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 699, + "duration": 217, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -24728,7 +28821,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Uwd3Mgx_OIsmNMFaqC0TF", + "parent": "HF7AHXLSTXOfzP4GsGW_I", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -24747,9 +28840,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:cbea0a1b-bae3-4492-bc57-be16a42399a4" + "_testId": "urn:uuid:f7082a0f-bc54-4403-93f0-e0c872fad62c" }, { "title": "Digital Bazaar", @@ -24769,9 +28862,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Sl1ZdtH7nwyDYJIYUwM-9", + "parent": "rHYNmqUz7rDL14PyHHiPv", "ctx": null, - "_testId": "urn:uuid:215c920c-9362-4695-82ec-b66ad52ca286", + "_testId": "urn:uuid:b95f4de1-9adf-4c0c-9302-566f5f8c8710", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have an issuer property." @@ -24783,19 +28876,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 75468, + "_idleStart": 49938, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 466, + "duration": 91, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24805,9 +28898,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Sl1ZdtH7nwyDYJIYUwM-9", + "parent": "rHYNmqUz7rDL14PyHHiPv", "ctx": null, - "_testId": "urn:uuid:82ce1b71-27a1-42d4-9fb6-fcfbf685e970", + "_testId": "urn:uuid:22b60a77-1339-49f7-baa8-a339e8e9d543", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -24819,19 +28912,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 75935, + "_idleStart": 50030, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 199, + "duration": 162, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -24852,7 +28942,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Sl1ZdtH7nwyDYJIYUwM-9", + "parent": "rHYNmqUz7rDL14PyHHiPv", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -24871,9 +28961,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:53ab3bf7-12c7-4006-b9e1-2b3a37e15b51" + "_testId": "urn:uuid:337e7954-5390-41cd-a6aa-c1c0418ceb47" }, { "title": "OpSecId", @@ -24893,9 +28983,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "OwxAPYNTgJ-hq0IVAglps", + "parent": "4sHX8XQe5O2kuYbzlsJG0", "ctx": null, - "_testId": "urn:uuid:398750ea-afd6-4384-b080-f38a9b679c53", + "_testId": "urn:uuid:46d5b50f-4994-4c26-a245-fbb79f20cff2", "cell": { "columnId": "OpSecId", "rowId": "A verifiable credential MUST have an issuer property." @@ -24907,19 +28997,113 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76135, + "_idleStart": 50193, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 97, - "state": "passed", - "speed": "slow" + "duration": 98, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + } }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -24929,9 +29113,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "OwxAPYNTgJ-hq0IVAglps", + "parent": "4sHX8XQe5O2kuYbzlsJG0", "ctx": null, - "_testId": "urn:uuid:8b7308ee-8095-49b5-8ad2-2c2979d85c8b", + "_testId": "urn:uuid:8732993f-9f22-4a65-9a73-f70fca617e7f", "cell": { "columnId": "OpSecId", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -24943,14 +29127,115 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76233, + "_idleStart": 50291, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 397, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": { + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "credentialSubject": { + "id": "did:example:subject" + } + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } } ], "root": false, @@ -24969,7 +29254,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "OwxAPYNTgJ-hq0IVAglps", + "parent": "4sHX8XQe5O2kuYbzlsJG0", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -24988,9 +29273,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:1b12f683-723d-41b8-8251-57af444806d2" + "_testId": "urn:uuid:cbb6d4cd-52ef-400d-b0ac-36a0261c667a" }, { "title": "Procivis One Core", @@ -25010,9 +29295,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "kMv7qRS7imWMjrMLWR18h", + "parent": "-JkhzIv0k2-qMToqeGUEc", "ctx": null, - "_testId": "urn:uuid:723ebfe7-f654-480b-99ea-0d8ad39b8367", + "_testId": "urn:uuid:ce9bc28a-82f8-4f21-a0b9-cf05aa986b6a", "cell": { "columnId": "Procivis One Core", "rowId": "A verifiable credential MUST have an issuer property." @@ -25024,19 +29309,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76630, + "_idleStart": 50315, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 341, + "duration": 391, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25046,9 +29331,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "kMv7qRS7imWMjrMLWR18h", + "parent": "-JkhzIv0k2-qMToqeGUEc", "ctx": null, - "_testId": "urn:uuid:67ce677e-1484-45f2-8fb1-454fc68ab924", + "_testId": "urn:uuid:d2f8780a-609c-456b-9044-bd2e29799677", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -25060,12 +29345,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76972, + "_idleStart": 50706, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 794, + "duration": 816, "state": "passed", "speed": "slow" } @@ -25086,7 +29371,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "kMv7qRS7imWMjrMLWR18h", + "parent": "-JkhzIv0k2-qMToqeGUEc", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -25105,9 +29390,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:9465bb78-1ff8-4c54-bfe9-0b3dabb45341" + "_testId": "urn:uuid:f4411974-0f8f-4e8d-9e0a-089039701418" }, { "title": "SpruceID", @@ -25127,9 +29412,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "_GHCj5Klt2psftacPlYb_", + "parent": "TJ3qPFQT09E6qAI7mNHGd", "ctx": null, - "_testId": "urn:uuid:a35f7708-d02f-4eda-b66c-6a94decd92b6", + "_testId": "urn:uuid:03503f8e-e8fd-49a2-b5dc-487aff0ed175", "cell": { "columnId": "SpruceID", "rowId": "A verifiable credential MUST have an issuer property." @@ -25141,19 +29426,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77766, + "_idleStart": 51523, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 80, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25163,9 +29448,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "_GHCj5Klt2psftacPlYb_", + "parent": "TJ3qPFQT09E6qAI7mNHGd", "ctx": null, - "_testId": "urn:uuid:a2d33f6d-b1b1-4747-bad3-56d8a2775a7b", + "_testId": "urn:uuid:b724cd7b-218a-486e-a5b2-38c0c02fbc8d", "cell": { "columnId": "SpruceID", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -25177,12 +29462,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77836, + "_idleStart": 51603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 159, + "duration": 251, "state": "passed", "speed": "slow" } @@ -25203,7 +29488,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "_GHCj5Klt2psftacPlYb_", + "parent": "TJ3qPFQT09E6qAI7mNHGd", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -25222,9 +29507,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:8113102c-01f9-40bd-a5ac-13ee207d3de7" + "_testId": "urn:uuid:432bc207-f18e-456d-9f9a-f6381b8c1b55" }, { "title": "VC Issuer Mock", @@ -25244,9 +29529,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "UOJIr-Ba7RYxUrv0S_vlW", + "parent": "ymjSkerg8xzKeEntoQhyZ", "ctx": null, - "_testId": "urn:uuid:26392d68-2913-4841-9f7d-96812f93bb3d", + "_testId": "urn:uuid:82afa486-4038-442f-ae23-aededf2042de", "cell": { "columnId": "VC Issuer Mock", "rowId": "A verifiable credential MUST have an issuer property." @@ -25258,19 +29543,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77995, + "_idleStart": 51855, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 142, + "duration": 117, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25280,9 +29565,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "UOJIr-Ba7RYxUrv0S_vlW", + "parent": "ymjSkerg8xzKeEntoQhyZ", "ctx": null, - "_testId": "urn:uuid:63949a0c-0c5f-4755-bc46-b31d73600826", + "_testId": "urn:uuid:4cff0c3a-1294-45d2-b83c-26b62756dea8", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -25294,12 +29579,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 78137, + "_idleStart": 51972, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 990, + "duration": 537, "state": "passed", "speed": "slow" } @@ -25320,7 +29605,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "UOJIr-Ba7RYxUrv0S_vlW", + "parent": "ymjSkerg8xzKeEntoQhyZ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -25339,9 +29624,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iYlkKen9FOPeoI_UViPQ3", + "parent": "5CMe3QVtgfleB3nuMo0nY", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "_testId": "urn:uuid:226b0f84-26a1-4650-87e6-0d63c93352de" + "_testId": "urn:uuid:73a29343-33e3-4a71-aa44-21d29ba0be5e" } ], "root": false, @@ -25357,13 +29642,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:014ce8a9-22db-4d39-a684-8fb023b6921a", + "_testId": "urn:uuid:8ffab5d0-f25a-4226-a51f-95069960e816", "columns": [ "ACA-py", "apicatalog.com", @@ -25391,11 +29676,179 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "qczkxiGYntvgKzUfHHJGA", + "parent": "9FCz_6bnAuMX3z1p55dih", + "ctx": null, + "_testId": "urn:uuid:3db1467a-2527-4f3b-bf2d-fac2b0be7bba", + "cell": { + "columnId": "ACA-py", + "rowId": "A verifiable credential MUST have an issuer property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 49091, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 205, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + } + }, + { + "type": "test", + "title": "A verifiable credential MUST have an issuer property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "HF7AHXLSTXOfzP4GsGW_I", + "ctx": null, + "_testId": "urn:uuid:eba5b0a3-085a-4119-8390-c1bcb1ad34dc", + "cell": { + "columnId": "apicatalog.com", + "rowId": "A verifiable credential MUST have an issuer property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 49326, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 394, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "A verifiable credential MUST have an issuer property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "rHYNmqUz7rDL14PyHHiPv", "ctx": null, - "_testId": "urn:uuid:ee8e5f65-b85f-41b6-98c5-78c59f61df53", + "_testId": "urn:uuid:b95f4de1-9adf-4c0c-9302-566f5f8c8710", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have an issuer property." }, "_events": {}, @@ -25405,12 +29858,48 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74121, + "_idleStart": 49938, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 91, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "A verifiable credential MUST have an issuer property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "4sHX8XQe5O2kuYbzlsJG0", + "ctx": null, + "_testId": "urn:uuid:46d5b50f-4994-4c26-a245-fbb79f20cff2", + "cell": { + "columnId": "OpSecId", + "rowId": "A verifiable credential MUST have an issuer property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 50193, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 98, "state": "failed", "err": { "response": {}, @@ -25418,7 +29907,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -25431,10 +29920,11 @@ "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -25503,11 +29993,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 } }, { @@ -25523,11 +30010,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Uwd3Mgx_OIsmNMFaqC0TF", + "parent": "-JkhzIv0k2-qMToqeGUEc", "ctx": null, - "_testId": "urn:uuid:d711f995-a079-4b97-8dd6-d01987673bf1", + "_testId": "urn:uuid:ce9bc28a-82f8-4f21-a0b9-cf05aa986b6a", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "A verifiable credential MUST have an issuer property." }, "_events": {}, @@ -25537,12 +30024,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74240, + "_idleStart": 50315, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 527, + "duration": 391, "state": "passed", "speed": "slow" }, @@ -25559,11 +30046,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Sl1ZdtH7nwyDYJIYUwM-9", + "parent": "TJ3qPFQT09E6qAI7mNHGd", "ctx": null, - "_testId": "urn:uuid:215c920c-9362-4695-82ec-b66ad52ca286", + "_testId": "urn:uuid:03503f8e-e8fd-49a2-b5dc-487aff0ed175", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "A verifiable credential MUST have an issuer property." }, "_events": {}, @@ -25573,12 +30060,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 75468, + "_idleStart": 51523, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 466, + "duration": 80, "state": "passed", "speed": "slow" }, @@ -25595,11 +30082,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "OwxAPYNTgJ-hq0IVAglps", + "parent": "ymjSkerg8xzKeEntoQhyZ", "ctx": null, - "_testId": "urn:uuid:398750ea-afd6-4384-b080-f38a9b679c53", + "_testId": "urn:uuid:82afa486-4038-442f-ae23-aededf2042de", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "A verifiable credential MUST have an issuer property." }, "_events": {}, @@ -25609,19 +30096,381 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76135, + "_idleStart": 51855, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 97, + "duration": 117, "state": "passed", "speed": "slow" + } + ] + }, + { + "id": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "cells": [ + { + "type": "test", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "9FCz_6bnAuMX3z1p55dih", + "ctx": null, + "_testId": "urn:uuid:bfea5a51-2a35-4bb1-84c0-e8b57584809f", + "cell": { + "columnId": "ACA-py", + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 49297, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 28, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": { + "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "credentialSubject": { + "id": "did:example:subject" + } + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "A verifiable credential MUST have an issuer property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "HF7AHXLSTXOfzP4GsGW_I", + "ctx": null, + "_testId": "urn:uuid:1059fb58-4419-451c-afd9-0acaeaf270ef", + "cell": { + "columnId": "apicatalog.com", + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 49720, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 217, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, + { + "type": "test", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "rHYNmqUz7rDL14PyHHiPv", + "ctx": null, + "_testId": "urn:uuid:22b60a77-1339-49f7-baa8-a339e8e9d543", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 50030, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 162, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, + { + "type": "test", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", + "parent": "4sHX8XQe5O2kuYbzlsJG0", + "ctx": null, + "_testId": "urn:uuid:8732993f-9f22-4a65-9a73-f70fca617e7f", + "cell": { + "columnId": "OpSecId", + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 50291, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": { + "id": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "credentialSubject": { + "id": "did:example:subject" + } + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25631,33 +30480,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "kMv7qRS7imWMjrMLWR18h", + "parent": "-JkhzIv0k2-qMToqeGUEc", "ctx": null, - "_testId": "urn:uuid:723ebfe7-f654-480b-99ea-0d8ad39b8367", + "_testId": "urn:uuid:d2f8780a-609c-456b-9044-bd2e29799677", "cell": { "columnId": "Procivis One Core", - "rowId": "A verifiable credential MUST have an issuer property." + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76630, + "_idleStart": 50706, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 341, + "duration": 816, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "A verifiable credential MUST have an issuer property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25667,33 +30516,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "_GHCj5Klt2psftacPlYb_", + "parent": "TJ3qPFQT09E6qAI7mNHGd", "ctx": null, - "_testId": "urn:uuid:a35f7708-d02f-4eda-b66c-6a94decd92b6", + "_testId": "urn:uuid:b724cd7b-218a-486e-a5b2-38c0c02fbc8d", "cell": { "columnId": "SpruceID", - "rowId": "A verifiable credential MUST have an issuer property." + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77766, + "_idleStart": 51603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 251, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "A verifiable credential MUST have an issuer property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.`;\n const vc = await endpoints.issue(\n require('./input/credential-ok.json'));\n vc.hasOwnProperty('issuer');\n }", + "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25703,39 +30552,46 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "UOJIr-Ba7RYxUrv0S_vlW", + "parent": "ymjSkerg8xzKeEntoQhyZ", "ctx": null, - "_testId": "urn:uuid:26392d68-2913-4841-9f7d-96812f93bb3d", + "_testId": "urn:uuid:4cff0c3a-1294-45d2-b83c-26b62756dea8", "cell": { "columnId": "VC Issuer Mock", - "rowId": "A verifiable credential MUST have an issuer property." + "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77995, + "_idleStart": 51972, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 142, + "duration": 537, "state": "passed", "speed": "slow" } ] - }, + } + ] + }, + { + "title": "Credential Subject", + "ctx": null, + "suites": [ { - "id": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", - "cells": [ + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25744,27 +30600,63 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "qczkxiGYntvgKzUfHHJGA", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "JqSPmuqO0tBe2Wuizo9AO", "ctx": null, - "_testId": "urn:uuid:fccc9c80-2abc-4a6f-ae24-6c8d5f662094", + "_testId": "urn:uuid:5ad6e7b9-0d5c-499d-9d5e-eb63f11bbabe", "cell": { "columnId": "ACA-py", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74213, + "_idleStart": 52510, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 28, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "JqSPmuqO0tBe2Wuizo9AO", + "ctx": null, + "_testId": "urn:uuid:b8932fb8-e114-45be-bb60-58058bcc5615", + "cell": { + "columnId": "ACA-py", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 52537, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 100, "state": "failed", "err": { "generatedMessage": false, @@ -25775,7 +30667,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -25785,12 +30677,15 @@ "type": [ "VerifiableCredential" ], - "issuer": { - "id": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "credentialSubject": { - "id": "did:example:subject" - } + "credentialSubject": [ + { + "id": "did:example:subject" + }, + { + "id": "did:example:other:subject" + } + ], + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { "type": "Ed25519Signature2020" @@ -25870,11 +30765,56 @@ }, "operator": "doesNotReject" } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "JqSPmuqO0tBe2Wuizo9AO", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "eZAaPGhpoVQFz04-ot_fi", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "_testId": "urn:uuid:ba2a75e2-630f-49af-8808-937b4ad6b039" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25883,41 +30823,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Uwd3Mgx_OIsmNMFaqC0TF", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "TNqQP0JEuptYJDYZGtnsu", "ctx": null, - "_testId": "urn:uuid:ebc7387c-522d-4038-bba6-0bfd5c7fd797", + "_testId": "urn:uuid:c632e552-821b-4dff-9a37-2b551bc2701d", "cell": { "columnId": "apicatalog.com", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 74768, + "_idleStart": 52637, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 699, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 23, + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -25926,41 +30859,42 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "Sl1ZdtH7nwyDYJIYUwM-9", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "TNqQP0JEuptYJDYZGtnsu", "ctx": null, - "_testId": "urn:uuid:82ce1b71-27a1-42d4-9fb6-fcfbf685e970", + "_testId": "urn:uuid:9f88e8fe-a7ff-49c6-b979-262cd335ce07", "cell": { - "columnId": "Digital Bazaar", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + "columnId": "apicatalog.com", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 75935, + "_idleStart": 52660, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 199, + "duration": 119, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -25969,34 +30903,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "OwxAPYNTgJ-hq0IVAglps", + "type": "hook", + "parent": "TNqQP0JEuptYJDYZGtnsu", "ctx": null, - "_testId": "urn:uuid:8b7308ee-8095-49b5-8ad2-2c2979d85c8b", - "cell": { - "columnId": "OpSecId", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 76233, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 397, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "eZAaPGhpoVQFz04-ot_fi", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "_testId": "urn:uuid:436d4285-cba6-4be8-bc00-e59afe120b25" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26005,34 +30944,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "kMv7qRS7imWMjrMLWR18h", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "IQLeS6sQycx-glcxBX3VN", "ctx": null, - "_testId": "urn:uuid:67ce677e-1484-45f2-8fb1-454fc68ab924", + "_testId": "urn:uuid:343d0356-6f86-4791-8059-59aeefc94575", "cell": { - "columnId": "Procivis One Core", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + "columnId": "Digital Bazaar", + "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 76972, + "_idleStart": 52779, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 794, + "duration": 58, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26041,34 +30980,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "_GHCj5Klt2psftacPlYb_", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "IQLeS6sQycx-glcxBX3VN", "ctx": null, - "_testId": "urn:uuid:a2d33f6d-b1b1-4747-bad3-56d8a2775a7b", + "_testId": "urn:uuid:fe57e626-4de4-42f7-b2be-84b55d960c7c", "cell": { - "columnId": "SpruceID", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." + "columnId": "Digital Bazaar", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 77836, + "_idleStart": 52837, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 159, + "duration": 179, "state": "passed", "speed": "slow" - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-issuer-object-ok.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer identifier that was not a URL.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a null identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-no-url-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject an issuer object containing a non-URL identifier.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -26077,47 +31020,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-7-issuer.js", - "parent": "UOJIr-Ba7RYxUrv0S_vlW", + "type": "hook", + "parent": "IQLeS6sQycx-glcxBX3VN", "ctx": null, - "_testId": "urn:uuid:63949a0c-0c5f-4755-bc46-b31d73600826", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=The%20value%20of%20the%20issuer%20property%20MUST%20be%20either%20a%20URL%2C%20or%20an%20object%20containing%20an%20id%20property%20whose%20value%20is%20a%20URL", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 78137, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 990, - "state": "passed", - "speed": "slow" + "duration": 0, + "_error": null } - ] - } - ] - }, - { - "title": "Credential Subject", - "ctx": null, - "suites": [ + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "eZAaPGhpoVQFz04-ot_fi", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "_testId": "urn:uuid:4627f8b4-5a86-44fd-b955-6e2b58708951" + }, { - "title": "ACA-py", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26127,11 +31062,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "-1i3-4gN2lwB0219uaA9e", + "parent": "ahaW9NQhT7eedMnWfZpM0", "ctx": null, - "_testId": "urn:uuid:e825cd26-6fc4-4fa2-aedd-fd93e5976bff", + "_testId": "urn:uuid:5ec08d70-823c-45e1-a254-c675328621e1", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, @@ -26141,19 +31076,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79128, + "_idleStart": 53016, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26163,11 +31098,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "-1i3-4gN2lwB0219uaA9e", + "parent": "ahaW9NQhT7eedMnWfZpM0", "ctx": null, - "_testId": "urn:uuid:61e70618-1e0d-4852-bb27-173c8a27f662", + "_testId": "urn:uuid:bf1a5e9e-d01e-4ea4-9bde-9ca974ea101a", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26177,12 +31112,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79207, + "_idleStart": 53040, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 99, "state": "failed", "err": { "generatedMessage": false, @@ -26193,7 +31128,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -26211,10 +31146,11 @@ "id": "did:example:other:subject" } ], - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -26283,11 +31219,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -26298,7 +31231,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -26309,7 +31242,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "-1i3-4gN2lwB0219uaA9e", + "parent": "ahaW9NQhT7eedMnWfZpM0", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -26328,19 +31261,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", + "parent": "eZAaPGhpoVQFz04-ot_fi", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:b91d8998-aea5-4470-9ec5-1174e220358e" + "_testId": "urn:uuid:9a0ecb00-ea72-4e13-8dba-af88b352898d" }, { - "title": "apicatalog.com", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26350,11 +31283,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "A0PwtIakw_j6VEgEpCMud", + "parent": "LVNDyzEdLoV-hDhIynPGW", "ctx": null, - "_testId": "urn:uuid:0e92302b-a811-41d0-9eee-c215bc186099", + "_testId": "urn:uuid:e10fa184-a004-42c8-b17e-b5e35ebc41ee", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, @@ -26364,19 +31297,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79341, + "_idleStart": 53140, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 56, + "duration": 121, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26386,11 +31319,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "A0PwtIakw_j6VEgEpCMud", + "parent": "LVNDyzEdLoV-hDhIynPGW", "ctx": null, - "_testId": "urn:uuid:3d5090a7-6dfb-4880-9cd0-e40d6d841465", + "_testId": "urn:uuid:b769f554-5c6d-43ed-b267-08519a3cd4f4", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26400,21 +31333,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79397, + "_idleStart": 53261, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 279, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 375, + "state": "passed", + "speed": "slow" } ], "root": false, @@ -26422,7 +31348,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -26433,7 +31359,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "A0PwtIakw_j6VEgEpCMud", + "parent": "LVNDyzEdLoV-hDhIynPGW", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -26452,19 +31378,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", + "parent": "eZAaPGhpoVQFz04-ot_fi", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:61a916fe-3ce7-47f6-af89-5d69d694b11c" + "_testId": "urn:uuid:4fbafa80-fbd1-4d66-9c72-c658137b6853" }, { - "title": "Digital Bazaar", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26474,11 +31400,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "u1dS2qI4WtEoAMTqXUNAA", + "parent": "0VybTz-l5AIcPaC9GcdkS", "ctx": null, - "_testId": "urn:uuid:306bfdc6-949d-463b-ae40-157d196db9b7", + "_testId": "urn:uuid:92140dcb-ef95-43f1-a1a1-770fea0b276f", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, @@ -26488,19 +31414,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79676, + "_idleStart": 53637, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, + "duration": 50, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26510,11 +31436,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "u1dS2qI4WtEoAMTqXUNAA", + "parent": "0VybTz-l5AIcPaC9GcdkS", "ctx": null, - "_testId": "urn:uuid:9804b0f9-c427-4d55-abfa-1bf4615ea6a6", + "_testId": "urn:uuid:a94350fe-8c10-40a4-8d12-6c99890e66cc", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26524,12 +31450,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79718, + "_idleStart": 53687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 154, "state": "passed", "speed": "slow" } @@ -26539,7 +31465,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -26550,7 +31476,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "u1dS2qI4WtEoAMTqXUNAA", + "parent": "0VybTz-l5AIcPaC9GcdkS", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -26569,19 +31495,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", + "parent": "eZAaPGhpoVQFz04-ot_fi", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:b3a237f2-7fff-4a85-989e-b217504a82bb" + "_testId": "urn:uuid:09431e3a-5b1a-421d-8669-ce2cdf048fa5" }, { - "title": "OpSecId", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26591,11 +31517,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "bjjdtO5ld8sRDJ41OT9iJ", + "parent": "XSdnWJm1q2EpUKiPmAxi0", "ctx": null, - "_testId": "urn:uuid:c98ed9b5-6702-4766-9c05-5c6c285bd947", + "_testId": "urn:uuid:79f7faa1-80a8-4e00-9df8-f0b016eb1692", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "A verifiable credential MUST contain a credentialSubject property." }, "_events": {}, @@ -26605,19 +31531,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80000, + "_idleStart": 53842, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 99, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26627,11 +31553,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "bjjdtO5ld8sRDJ41OT9iJ", + "parent": "XSdnWJm1q2EpUKiPmAxi0", "ctx": null, - "_testId": "urn:uuid:ab2b376c-5ff3-434a-ae0c-bb3edb833843", + "_testId": "urn:uuid:635d2b46-cfb5-44ba-a90e-7802c9477efa", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26641,12 +31567,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80030, + "_idleStart": 53941, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 220, + "duration": 279, "state": "passed", "speed": "slow" } @@ -26656,7 +31582,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -26667,7 +31593,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "bjjdtO5ld8sRDJ41OT9iJ", + "parent": "XSdnWJm1q2EpUKiPmAxi0", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -26686,19 +31612,307 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", + "parent": "eZAaPGhpoVQFz04-ot_fi", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:6c27c4a3-0da4-4951-92f9-1c7e6682717a" + "_testId": "urn:uuid:54442ac3-0fcd-4496-bb28-4d3210a466b7" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:cf024d31-9d97-4cd3-91a0-f1acec3850a2", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ + { + "id": "A verifiable credential MUST contain a credentialSubject property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "cells": [ + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "JqSPmuqO0tBe2Wuizo9AO", + "ctx": null, + "_testId": "urn:uuid:5ad6e7b9-0d5c-499d-9d5e-eb63f11bbabe", + "cell": { + "columnId": "ACA-py", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 52510, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 28, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "TNqQP0JEuptYJDYZGtnsu", + "ctx": null, + "_testId": "urn:uuid:c632e552-821b-4dff-9a37-2b551bc2701d", + "cell": { + "columnId": "apicatalog.com", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 52637, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "IQLeS6sQycx-glcxBX3VN", + "ctx": null, + "_testId": "urn:uuid:343d0356-6f86-4791-8059-59aeefc94575", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 52779, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 58, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "ahaW9NQhT7eedMnWfZpM0", + "ctx": null, + "_testId": "urn:uuid:5ec08d70-823c-45e1-a254-c675328621e1", + "cell": { + "columnId": "OpSecId", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 53016, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 24, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "LVNDyzEdLoV-hDhIynPGW", + "ctx": null, + "_testId": "urn:uuid:e10fa184-a004-42c8-b17e-b5e35ebc41ee", + "cell": { + "columnId": "Procivis One Core", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 53140, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 121, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "0VybTz-l5AIcPaC9GcdkS", + "ctx": null, + "_testId": "urn:uuid:92140dcb-ef95-43f1-a1a1-770fea0b276f", + "cell": { + "columnId": "SpruceID", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 53637, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 50, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "A verifiable credential MUST contain a credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", + "parent": "XSdnWJm1q2EpUKiPmAxi0", + "ctx": null, + "_testId": "urn:uuid:79f7faa1-80a8-4e00-9df8-f0b016eb1692", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "A verifiable credential MUST contain a credentialSubject property." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 53842, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 99, + "state": "passed", + "speed": "slow" + } + ] }, { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ + "id": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "cells": [ { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26708,33 +31922,139 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "U-1P6lmF2oJJBUMs2iI0P", + "parent": "JqSPmuqO0tBe2Wuizo9AO", "ctx": null, - "_testId": "urn:uuid:1e36eed0-cbed-4904-a84c-9633270c5289", + "_testId": "urn:uuid:b8932fb8-e114-45be-bb60-58058bcc5615", "cell": { - "columnId": "Procivis One Core", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "ACA-py", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80251, + "_idleStart": 52537, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, - "state": "passed", - "speed": "slow" + "duration": 100, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": [ + { + "id": "did:example:subject" + }, + { + "id": "did:example:other:subject" + } + ], + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26744,11 +32064,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "U-1P6lmF2oJJBUMs2iI0P", + "parent": "TNqQP0JEuptYJDYZGtnsu", "ctx": null, - "_testId": "urn:uuid:d4764bd2-fe4a-4869-9548-4baea01c7a4d", + "_testId": "urn:uuid:9f88e8fe-a7ff-49c6-b979-262cd335ce07", "cell": { - "columnId": "Procivis One Core", + "columnId": "apicatalog.com", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26758,23 +32078,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80385, + "_idleStart": 52660, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 334, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + "duration": 119, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "type": "test", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26783,39 +32103,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "U-1P6lmF2oJJBUMs2iI0P", - "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", + "parent": "IQLeS6sQycx-glcxBX3VN", + "ctx": null, + "_testId": "urn:uuid:fe57e626-4de4-42f7-b2be-84b55d960c7c", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:32307727-cb14-4298-9fd4-56a9ccad9b26" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 52837, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 179, + "state": "passed", + "speed": "slow" + }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26825,33 +32140,137 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "h7VQC850uBmnIqE1LqJpk", + "parent": "ahaW9NQhT7eedMnWfZpM0", "ctx": null, - "_testId": "urn:uuid:e546451f-d6fe-479d-aa47-6dcf60b4c5a4", + "_testId": "urn:uuid:bf1a5e9e-d01e-4ea4-9bde-9ca974ea101a", "cell": { - "columnId": "SpruceID", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "OpSecId", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80719, + "_idleStart": 53040, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, - "state": "passed", - "speed": "fast" + "duration": 99, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": [ + { + "id": "did:example:subject" + }, + { + "id": "did:example:other:subject" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26861,11 +32280,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "h7VQC850uBmnIqE1LqJpk", + "parent": "LVNDyzEdLoV-hDhIynPGW", "ctx": null, - "_testId": "urn:uuid:eb08dc8a-3653-4824-8185-a50fa203cdf8", + "_testId": "urn:uuid:b769f554-5c6d-43ed-b267-08519a3cd4f4", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, @@ -26875,64 +32294,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80744, + "_idleStart": 53261, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 375, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "h7VQC850uBmnIqE1LqJpk", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:c4e288f5-40ea-4e71-b74e-467d79dd40e3" - }, - { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26942,33 +32316,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "gAqlGSx0_zXy2J93Pla0l", + "parent": "0VybTz-l5AIcPaC9GcdkS", "ctx": null, - "_testId": "urn:uuid:bc6d6c2b-0744-4cec-8303-35fab42ee29c", + "_testId": "urn:uuid:a94350fe-8c10-40a4-8d12-6c99890e66cc", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "SpruceID", + "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80844, + "_idleStart": 53687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 154, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -26978,9 +32352,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "gAqlGSx0_zXy2J93Pla0l", + "parent": "XSdnWJm1q2EpUKiPmAxi0", "ctx": null, - "_testId": "urn:uuid:824da327-a3f0-4e62-8439-8303dfd491e2", + "_testId": "urn:uuid:635d2b46-cfb5-44ba-a90e-7802c9477efa", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -26992,94 +32366,32 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80971, + "_idleStart": 53941, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 579, + "duration": 279, "state": "passed", "speed": "slow" } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "gAqlGSx0_zXy2J93Pla0l", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "C1889mjnaZw0HWC3qWhsz", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "_testId": "urn:uuid:43c012a5-d3a0-4b9a-864e-5cb878849594" + ] } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:57e40ae5-8be1-4eea-87c6-daf1887e2055", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + ] + }, + { + "title": "Validity Period", + "ctx": null, + "suites": [ { - "id": "A verifiable credential MUST contain a credentialSubject property.", - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", - "cells": [ + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27088,34 +32400,136 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "-1i3-4gN2lwB0219uaA9e", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:e825cd26-6fc4-4fa2-aedd-fd93e5976bff", + "_testId": "urn:uuid:4719f773-1ae5-4ebf-a935-d9a991770126", "cell": { "columnId": "ACA-py", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79128, + "_idleStart": 54220, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, - "state": "passed", - "speed": "slow" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:02:58.447Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27124,34 +32538,137 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "A0PwtIakw_j6VEgEpCMud", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:0e92302b-a811-41d0-9eee-c215bc186099", + "_testId": "urn:uuid:5e3441c6-75cc-4448-812b-d40fa337499f", "cell": { - "columnId": "apicatalog.com", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "ACA-py", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79341, + "_idleStart": 54247, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 56, - "state": "passed", - "speed": "medium" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:19:19Z", + "validUntil": "2023-02-26T01:19:20Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27160,34 +32677,137 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "u1dS2qI4WtEoAMTqXUNAA", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:306bfdc6-949d-463b-ae40-157d196db9b7", + "_testId": "urn:uuid:c4b75cae-bf60-4188-9e57-ef0f00915d53", "cell": { - "columnId": "Digital Bazaar", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "ACA-py", + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79676, + "_idleStart": 54274, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, - "state": "passed", - "speed": "medium" + "duration": 27, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:40Z\",\"validUntil\":\"2025-10-20T05:06:40Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-10-20T05:06:40Z", + "validUntil": "2025-10-20T05:06:40Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27196,34 +32816,137 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "bjjdtO5ld8sRDJ41OT9iJ", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:c98ed9b5-6702-4766-9c05-5c6c285bd947", + "_testId": "urn:uuid:81e87626-e9ad-45a0-ba73-dfe1d3a27dd3", "cell": { - "columnId": "OpSecId", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "ACA-py", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80000, + "_idleStart": 54302, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, - "state": "passed", - "speed": "fast" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:40Z\",\"validUntil\":\"2025-10-20T05:06:40Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-10-20T05:06:40Z", + "validUntil": "2025-10-20T05:06:40Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27231,35 +32954,42 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "U-1P6lmF2oJJBUMs2iI0P", + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:1e36eed0-cbed-4904-a84c-9633270c5289", + "_testId": "urn:uuid:1cb60135-368c-4d5c-ae69-d1752ad37880", "cell": { - "columnId": "Procivis One Core", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "ACA-py", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80251, + "_idleStart": 54329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -27268,34 +32998,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "h7VQC850uBmnIqE1LqJpk", + "type": "hook", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:e546451f-d6fe-479d-aa47-6dcf60b4c5a4", - "cell": { - "columnId": "SpruceID", - "rowId": "A verifiable credential MUST contain a credentialSubject property." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 80719, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 24, - "state": "passed", - "speed": "fast" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "coxIx4RE9-zaoCWR-Davb", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "_testId": "urn:uuid:8416cc92-ec06-4fa3-a64f-6d2647c3baad" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "A verifiable credential MUST contain a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n {name: 'HTTPError'},\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27304,40 +33039,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "gAqlGSx0_zXy2J93Pla0l", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:bc6d6c2b-0744-4cec-8303-35fab42ee29c", + "_testId": "urn:uuid:a35d8a9b-39c7-475a-8ce6-c57522398942", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "A verifiable credential MUST contain a credentialSubject property." + "columnId": "apicatalog.com", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20contain%20a%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80844, + "_idleStart": 54329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 409, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", - "cells": [ + }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27346,27 +33075,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "-1i3-4gN2lwB0219uaA9e", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:61e70618-1e0d-4852-bb27-173c8a27f662", + "_testId": "urn:uuid:33dd08e6-6cd8-41bf-8fe8-dc38ed831115", "cell": { - "columnId": "ACA-py", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "apicatalog.com", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79207, + "_idleStart": 54738, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 41, "state": "failed", "err": { "generatedMessage": false, @@ -27377,7 +33106,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":[{\"id\":\"did:example:subject\"},{\"id\":\"did:example:other:subject\"}],\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -27387,18 +33116,12 @@ "type": [ "VerifiableCredential" ], - "credentialSubject": [ - { - "id": "did:example:subject" - }, - { - "id": "did:example:other:subject" - } - ], - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "options": { - "type": "Ed25519Signature2020" + "validFrom": "2023-02-26T01:19:19Z", + "validUntil": "2023-02-26T01:19:20Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020" } }, "agent": { @@ -27467,10 +33190,11 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "id": "EXPIRED", + "message": "Expired" } }, "operator": "doesNotReject" @@ -27478,8 +33202,8 @@ }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27488,41 +33212,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "A0PwtIakw_j6VEgEpCMud", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:3d5090a7-6dfb-4880-9cd0-e40d6d841465", + "_testId": "urn:uuid:2d0bc47b-24a3-41f0-849f-fbdc43bdf91a", "cell": { "columnId": "apicatalog.com", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79397, + "_idleStart": 54779, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 279, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 200, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27531,34 +33248,77 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "u1dS2qI4WtEoAMTqXUNAA", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:9804b0f9-c427-4d55-abfa-1bf4615ea6a6", + "_testId": "urn:uuid:ef70a53f-7de8-4538-9ac2-0b5a3fbf7d0f", "cell": { - "columnId": "Digital Bazaar", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "apicatalog.com", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 79718, + "_idleStart": 54980, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 100, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", + "ctx": null, + "_testId": "urn:uuid:4328b4c3-035b-4a99-a60e-51cb95eb4dec", + "cell": { + "columnId": "apicatalog.com", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 55081, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -27567,34 +33327,75 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "bjjdtO5ld8sRDJ41OT9iJ", + "type": "hook", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "coxIx4RE9-zaoCWR-Davb", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "_testId": "urn:uuid:8f62f9c6-e976-43db-aae5-6c4576aae2e2" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:ab2b376c-5ff3-434a-ae0c-bb3edb833843", + "_testId": "urn:uuid:64d7c48c-d02f-43cf-bdf7-5375f258427a", "cell": { - "columnId": "OpSecId", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "Digital Bazaar", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80030, + "_idleStart": 55081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 220, + "duration": 331, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27603,34 +33404,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "U-1P6lmF2oJJBUMs2iI0P", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:d4764bd2-fe4a-4869-9548-4baea01c7a4d", + "_testId": "urn:uuid:431fd1da-9315-497c-b5f1-3c08ff02595e", "cell": { - "columnId": "Procivis One Core", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "Digital Bazaar", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80385, + "_idleStart": 55412, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 334, + "duration": 301, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27639,34 +33440,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "h7VQC850uBmnIqE1LqJpk", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:eb08dc8a-3653-4824-8185-a50fa203cdf8", + "_testId": "urn:uuid:c6a5de18-7e86-458f-bdfa-e738883fec28", "cell": { - "columnId": "SpruceID", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "Digital Bazaar", + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80744, + "_idleStart": 55713, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 237, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-subject-no-claims-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with an empty `credentialSubject`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-subject-multiple-ok.json')),\n 'Failed to accept a VC with multiple `credentialSubject`s.');\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27675,47 +33476,118 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-8-credential-subject.js", - "parent": "gAqlGSx0_zXy2J93Pla0l", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:824da327-a3f0-4e62-8439-8303dfd491e2", + "_testId": "urn:uuid:7f122a73-ad5e-46d1-8ecf-f2a31b935bea", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." + "columnId": "Digital Bazaar", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=The%20value%20of%20the%20credentialSubject%20property%20is%20a%20set%20of%20objects%20where%20each%20object%20MUST%20be%20the%20subject%20of%20one%20or%20more%20claims%2C%20which%20MUST%20be%20serialized%20inside%20the%20credentialSubject%20property.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 80971, + "_idleStart": 55950, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 579, + "duration": 211, "state": "passed", "speed": "slow" + }, + { + "type": "test", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", + "ctx": null, + "_testId": "urn:uuid:c12539bb-e359-4494-b142-a34cbc6427de", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 56161, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } } - ] - } - ] - }, - { - "title": "Validity Period", - "ctx": null, - "suites": [ + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "x4OXwqyr_QV07VKjQABGx", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "coxIx4RE9-zaoCWR-Davb", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "_testId": "urn:uuid:80b7a89f-4d07-4f14-98a3-4ffeaf43b26c" + }, { - "title": "ACA-py", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27725,11 +33597,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:ae65c039-7703-46f3-a8e6-452ef90cc2a9", + "_testId": "urn:uuid:3e59d991-9809-41f9-a674-a3b16df563a5", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -27739,12 +33611,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81551, + "_idleStart": 56161, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 32, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -27755,7 +33627,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -27769,10 +33641,11 @@ "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -27841,11 +33714,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -27853,7 +33723,7 @@ { "type": "test", "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -27863,11 +33733,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:39ae01e6-2618-4cef-b371-7014f98e24db", + "_testId": "urn:uuid:5215077d-a2fa-47f0-921e-1d5a93bae27c", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, @@ -27877,12 +33747,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81583, + "_idleStart": 56185, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -27893,7 +33763,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -27908,10 +33778,11 @@ "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -27980,11 +33851,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -28002,11 +33870,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:416ae9d6-e5f6-40c7-b9dc-2c37cd0a1be9", + "_testId": "urn:uuid:e98c7180-d92b-4796-a8f1-2b26fc9c8e57", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, @@ -28016,12 +33884,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81611, + "_idleStart": 56208, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -28032,7 +33900,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-13T05:07:47Z\",\"validUntil\":\"2025-10-13T05:07:47Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:42Z\",\"validUntil\":\"2025-10-20T05:06:42Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -28042,15 +33910,16 @@ "type": [ "VerifiableCredential" ], - "validFrom": "2023-10-13T05:07:47Z", - "validUntil": "2025-10-13T05:07:47Z", + "validFrom": "2023-10-20T05:06:42Z", + "validUntil": "2025-10-20T05:06:42Z", "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -28119,11 +33988,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -28141,11 +34007,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:311cee21-81bc-482d-9410-505d350ffc5c", + "_testId": "urn:uuid:e7784d3e-93cc-4800-8c9b-f2ef6782c6e0", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, @@ -28155,12 +34021,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81640, + "_idleStart": 56231, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -28171,7 +34037,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-13T05:07:47Z\",\"validUntil\":\"2025-10-13T05:07:47Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:42Z\",\"validUntil\":\"2025-10-20T05:06:42Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -28181,15 +34047,16 @@ "type": [ "VerifiableCredential" ], - "validFrom": "2023-10-13T05:07:47Z", - "validUntil": "2025-10-13T05:07:47Z", + "validFrom": "2023-10-20T05:06:42Z", + "validUntil": "2025-10-20T05:06:42Z", "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -28258,11 +34125,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -28280,11 +34144,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:0c3da97b-655a-43a2-9b0a-f007ccf74de2", + "_testId": "urn:uuid:ed5b4d31-2cab-4b23-ab57-0f324eb9ddef", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", "skipMessage": "TBD" }, @@ -28295,7 +34159,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81668, + "_idleStart": 56255, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -28312,7 +34176,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -28323,7 +34187,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -28342,19 +34206,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", + "parent": "coxIx4RE9-zaoCWR-Davb", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:482cae70-0441-4227-aabd-07d0f64b2da5" + "_testId": "urn:uuid:24a59fe5-c977-4712-81c4-34ecc1717aad" }, { - "title": "apicatalog.com", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28364,11 +34228,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:5ea61ecf-ced3-49cf-be6e-f7b74ff37e4b", + "_testId": "urn:uuid:022f5bdb-62da-491c-a7e2-39229b617653", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -28378,19 +34242,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81669, + "_idleStart": 56255, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1595, + "duration": 514, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28400,11 +34264,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:311237ff-56eb-47d8-85a5-1e3a19dc4149", + "_testId": "urn:uuid:ce100c7e-ae4b-4c44-99d8-0e2647c00e55", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, @@ -28414,115 +34278,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 83264, + "_idleStart": 56769, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\"}}", - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "validFrom": "2023-02-26T01:19:19Z", - "validUntil": "2023-02-26T01:19:20Z", - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", - "status": 400, - "data": { - "id": "EXPIRED", - "message": "Expired" - } - }, - "operator": "doesNotReject" - } + "duration": 512, + "state": "passed", + "speed": "slow" }, { "type": "test", @@ -28537,11 +34300,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:e6b52e82-66ea-4ba6-84f7-42ee761e3c95", + "_testId": "urn:uuid:527fad13-c6a6-4ba7-a1ec-d5263bf1290b", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, @@ -28551,12 +34314,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 83365, + "_idleStart": 57281, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 305, + "duration": 254, "state": "passed", "speed": "slow" }, @@ -28573,11 +34336,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:91cd01b5-21ba-45d3-8286-c819b1cb22b2", + "_testId": "urn:uuid:f7121594-b9ad-442c-a034-b0d7c7bdbb2c", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, @@ -28587,12 +34350,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 83670, + "_idleStart": 57536, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 393, + "duration": 251, "state": "passed", "speed": "slow" }, @@ -28609,11 +34372,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:71b2ffcc-787d-4d5f-8da0-a36b921aa2b8", + "_testId": "urn:uuid:7149cb3a-148c-4f79-8460-5fb587b94b0b", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", "skipMessage": "TBD" }, @@ -28624,7 +34387,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84062, + "_idleStart": 57788, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -28641,7 +34404,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -28652,7 +34415,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -28671,19 +34434,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", + "parent": "coxIx4RE9-zaoCWR-Davb", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:7e21a27e-4ef2-4b68-ba15-f6403525e222" + "_testId": "urn:uuid:4fda2fad-fa97-4aff-a6c5-7608c06b5e76" }, { - "title": "Digital Bazaar", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28693,11 +34456,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:96b63115-c702-47ae-ac77-28eb1319c9b9", + "_testId": "urn:uuid:f512a72d-5736-4f1e-b384-4db05ba03822", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -28707,19 +34470,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84063, + "_idleStart": 57788, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 325, + "duration": 197, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28729,11 +34492,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:ef52d372-b171-4383-8b89-80152eb25b2c", + "_testId": "urn:uuid:d16d0f4d-0c34-40ae-8bfb-995fecfc5f8f", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, @@ -28743,12 +34506,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84387, + "_idleStart": 57986, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 329, + "duration": 194, "state": "passed", "speed": "slow" }, @@ -28765,11 +34528,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:4022c598-61e2-45ae-ba44-d3e73db0f32b", + "_testId": "urn:uuid:2fc609c5-5598-480a-8634-41ee8dbdc33e", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, @@ -28779,12 +34542,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84716, + "_idleStart": 58180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 340, + "duration": 160, "state": "passed", "speed": "slow" }, @@ -28801,11 +34564,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:9965d613-cf1c-4a02-82d0-868ccaf6b2ee", + "_testId": "urn:uuid:39d351cb-20fa-49e3-84e3-112572b51032", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, @@ -28815,12 +34578,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85057, + "_idleStart": 58340, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 263, + "duration": 154, "state": "passed", "speed": "slow" }, @@ -28837,11 +34600,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:a7f24eb7-3c09-4cf9-aafa-0f7f06726be9", + "_testId": "urn:uuid:f941155d-5aa0-4452-a0e2-f82192dc6915", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", "skipMessage": "TBD" }, @@ -28852,12 +34615,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85321, + "_idleStart": 58494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending", "err": { "message": "TBD" @@ -28869,7 +34632,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -28880,7 +34643,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -28899,19 +34662,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", + "parent": "coxIx4RE9-zaoCWR-Davb", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:be7234fa-3373-4004-8a0d-cb256504216b" + "_testId": "urn:uuid:daf657b9-4b30-4fef-bbd0-0cd644844924" }, { - "title": "OpSecId", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28921,11 +34684,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:21c53f15-110c-4e79-a60d-afc0e8c83566", + "_testId": "urn:uuid:470fefcb-df4f-4feb-a065-71db36ebdae8", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -28935,19 +34698,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85321, + "_idleStart": 58494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 408, + "duration": 384, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -28957,11 +34720,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:e199f331-bb57-4cb8-b1da-7be868f060e6", + "_testId": "urn:uuid:c51e4a44-ac3c-422a-8e05-c315d8bf233c", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, @@ -28971,12 +34734,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85730, + "_idleStart": 58878, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 306, + "duration": 589, "state": "passed", "speed": "slow" }, @@ -28993,11 +34756,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:be2a2d10-d040-4ca4-bd16-cd5941730382", + "_testId": "urn:uuid:f0bd0641-e1de-4de3-ae50-b7deb76ab564", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, @@ -29007,12 +34770,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86037, + "_idleStart": 59468, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 233, + "duration": 314, "state": "passed", "speed": "slow" }, @@ -29029,11 +34792,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:31e92e34-5f93-4690-a797-a6d4bc2acaac", + "_testId": "urn:uuid:e360262f-02d0-4271-8a81-e970e13c9bd8", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, @@ -29043,12 +34806,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86271, + "_idleStart": 59782, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 246, + "duration": 311, "state": "passed", "speed": "slow" }, @@ -29065,11 +34828,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:1ebc039c-f7a1-4854-a3fc-97ddae10bc0b", + "_testId": "urn:uuid:263d8a03-6105-40fa-9e7a-345b8c35d3fe", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", "skipMessage": "TBD" }, @@ -29080,7 +34843,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86517, + "_idleStart": 60093, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -29097,7 +34860,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -29108,7 +34871,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -29127,19 +34890,49 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", + "parent": "coxIx4RE9-zaoCWR-Davb", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:a826858f-3ba2-45e9-a99f-13b116c28a21" - }, + "_testId": "urn:uuid:ac3b4a36-f2d7-4225-bbbc-d6efbd993367" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:08cec81b-e3f6-4768-aaba-71403d0daa94", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ + "id": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "cells": [ { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29149,11 +34942,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:a28589d6-c5b2-4cf8-9821-7c16c99257f8", + "_testId": "urn:uuid:4719f773-1ae5-4ebf-a935-d9a991770126", "cell": { - "columnId": "Procivis One Core", + "columnId": "ACA-py", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -29163,19 +34956,121 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86517, + "_idleStart": 54220, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 992, - "state": "passed", - "speed": "slow" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:02:58.447Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29185,33 +35080,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:02254525-30f3-4a53-a4c9-d329ab3cb9d2", + "_testId": "urn:uuid:a35d8a9b-39c7-475a-8ce6-c57522398942", "cell": { - "columnId": "Procivis One Core", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "apicatalog.com", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 87510, + "_idleStart": 54329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 472, + "duration": 409, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29221,33 +35116,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:527ee325-1036-43cf-b829-2a9a4ac9b749", + "_testId": "urn:uuid:64d7c48c-d02f-43cf-bdf7-5375f258427a", "cell": { - "columnId": "Procivis One Core", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "Digital Bazaar", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 87983, + "_idleStart": 55081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 226, + "duration": 331, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29257,117 +35152,133 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", - "ctx": null, - "_testId": "urn:uuid:23faa669-6f53-41ca-822d-40998d7b8360", - "cell": { - "columnId": "Procivis One Core", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 88210, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 245, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:fd4053cd-2e59-439c-9f8f-5f05af5c899b", + "_testId": "urn:uuid:3e59d991-9809-41f9-a674-a3b16df563a5", "cell": { - "columnId": "Procivis One Core", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "OpSecId", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88455, + "_idleStart": 56161, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", + "duration": 23, + "state": "failed", "err": { - "message": "TBD" + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:02:58.447Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "aC53mRzkZ5csGvVK2pWz1", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:4cd9885a-3818-4659-80eb-2750c63a2cf3" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29377,11 +35288,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:79ee4116-bc6e-46eb-a6dd-a9cd4ecaf6e8", + "_testId": "urn:uuid:022f5bdb-62da-491c-a7e2-39229b617653", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, @@ -29391,19 +35302,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88455, + "_idleStart": 56255, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 141, + "duration": 514, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29413,33 +35324,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:973c360c-82ec-4f96-9aff-f1131f191865", + "_testId": "urn:uuid:f512a72d-5736-4f1e-b384-4db05ba03822", "cell": { "columnId": "SpruceID", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88596, + "_idleStart": 57788, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 115, + "duration": 197, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29449,33 +35360,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:24a00824-437a-452f-9d34-1980b245ec65", + "_testId": "urn:uuid:470fefcb-df4f-4feb-a065-71db36ebdae8", "cell": { - "columnId": "SpruceID", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "VC Issuer Mock", + "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88711, + "_idleStart": 58494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, + "duration": 384, "state": "passed", "speed": "slow" - }, + } + ] + }, + { + "id": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "cells": [ { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29485,33 +35402,136 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:35f07803-12a2-45c1-bfc9-30f9435dc53f", + "_testId": "urn:uuid:5e3441c6-75cc-4448-812b-d40fa337499f", "cell": { - "columnId": "SpruceID", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + "columnId": "ACA-py", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88789, + "_idleStart": 54247, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, - "state": "passed", - "speed": "medium" + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:19:19Z", + "validUntil": "2023-02-26T01:19:20Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29519,83 +35539,136 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:5c94cb4f-3dd4-4fc0-b50e-c7d28f10bb17", + "_testId": "urn:uuid:33dd08e6-6cd8-41bf-8fe8-dc38ed831115", "cell": { - "columnId": "SpruceID", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "apicatalog.com", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88862, + "_idleStart": 54738, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", + "duration": 41, + "state": "failed", "err": { - "message": "TBD" + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:19:19Z", + "validUntil": "2023-02-26T01:19:20Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", + "status": 400, + "data": { + "id": "EXPIRED", + "message": "Expired" + } + }, + "operator": "doesNotReject" } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "_Dz8TwpcSYasCs4mMR_2S", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:8239885f-e38e-4845-9ce9-724eacb5df2c" - }, - { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29605,33 +35678,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:9ebc104a-fb21-415d-98f2-7a8f0008b66d", + "_testId": "urn:uuid:431fd1da-9315-497c-b5f1-3c08ff02595e", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "columnId": "Digital Bazaar", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88862, + "_idleStart": 55412, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 478, + "duration": 301, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29641,11 +35714,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:c9e779a7-414c-4cc9-a0ea-720e5e6405fb", + "_testId": "urn:uuid:5215077d-a2fa-47f0-921e-1d5a93bae27c", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "OpSecId", "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, @@ -29655,19 +35728,120 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 89340, + "_idleStart": 56185, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 473, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-02-26T01:19:19Z", + "validUntil": "2023-02-26T01:19:20Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29677,33 +35851,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:6082f1c0-4fe2-4204-9952-ae771ce34920", + "_testId": "urn:uuid:ce100c7e-ae4b-4c44-99d8-0e2647c00e55", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "Procivis One Core", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 89813, + "_idleStart": 56769, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 320, + "duration": 512, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29713,33 +35887,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:83b41cc4-9da8-49aa-9283-30027999caba", + "_testId": "urn:uuid:d16d0f4d-0c34-40ae-8bfb-995fecfc5f8f", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + "columnId": "SpruceID", + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90134, + "_idleStart": 57986, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 332, + "duration": 194, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29747,113 +35921,41 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:bab81334-e0d1-4f14-95e4-12236d9efde9", + "_testId": "urn:uuid:c51e4a44-ac3c-422a-8e05-c315d8bf233c", "cell": { "columnId": "VC Issuer Mock", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90467, + "_idleStart": 58878, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "TBD" - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "yh3DLwjWR4v-mwAGzdA54", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null + "duration": 589, + "state": "passed", + "speed": "slow" } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "wt-nXeaUA8MzG_9ATbS_U", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "_testId": "urn:uuid:bc332c60-e0d1-4c6e-9fa4-c2e0908d9ec1" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:b177292d-4bed-4c7a-b222-24691eae6ab5", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + ] + }, { - "id": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "id": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "cells": [ { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -29863,26 +35965,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:ae65c039-7703-46f3-a8e6-452ef90cc2a9", + "_testId": "urn:uuid:c4b75cae-bf60-4188-9e57-ef0f00915d53", "cell": { "columnId": "ACA-py", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81551, + "_idleStart": 54274, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 32, + "duration": 27, "state": "failed", "err": { "generatedMessage": false, @@ -29893,7 +35995,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:02:58.447Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:40Z\",\"validUntil\":\"2025-10-20T05:06:40Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -29903,7 +36005,8 @@ "type": [ "VerifiableCredential" ], - "validFrom": "2023-02-26T01:02:58.447Z", + "validFrom": "2023-10-20T05:06:40Z", + "validUntil": "2025-10-20T05:06:40Z", "credentialSubject": { "id": "did:example:subject" }, @@ -29990,8 +36093,8 @@ }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30001,33 +36104,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:5ea61ecf-ced3-49cf-be6e-f7b74ff37e4b", + "_testId": "urn:uuid:2d0bc47b-24a3-41f0-849f-fbdc43bdf91a", "cell": { "columnId": "apicatalog.com", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81669, + "_idleStart": 54779, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1595, + "duration": 200, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30037,33 +36140,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:96b63115-c702-47ae-ac77-28eb1319c9b9", + "_testId": "urn:uuid:c6a5de18-7e86-458f-bdfa-e738883fec28", "cell": { "columnId": "Digital Bazaar", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84063, + "_idleStart": 55713, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 325, + "duration": 237, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30073,33 +36176,134 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:21c53f15-110c-4e79-a60d-afc0e8c83566", + "_testId": "urn:uuid:e98c7180-d92b-4796-a8f1-2b26fc9c8e57", "cell": { "columnId": "OpSecId", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85321, + "_idleStart": 56208, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 408, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:42Z\",\"validUntil\":\"2025-10-20T05:06:42Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "validFrom": "2023-10-20T05:06:42Z", + "validUntil": "2025-10-20T05:06:42Z", + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30109,33 +36313,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:a28589d6-c5b2-4cf8-9821-7c16c99257f8", + "_testId": "urn:uuid:527fad13-c6a6-4ba7-a1ec-d5263bf1290b", "cell": { "columnId": "Procivis One Core", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86517, + "_idleStart": 57281, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 992, + "duration": 254, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30145,33 +36349,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:79ee4116-bc6e-46eb-a6dd-a9cd4ecaf6e8", + "_testId": "urn:uuid:2fc609c5-5598-480a-8634-41ee8dbdc33e", "cell": { "columnId": "SpruceID", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88455, + "_idleStart": 58180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 141, + "duration": 160, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a valid `validFrom` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an incorrect `validFrom` date-time ' +\n 'format.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json')),\n 'Failed to accept a VC with a `validFrom` far into the future.');\n }", + "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30181,39 +36385,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:9ebc104a-fb21-415d-98f2-7a8f0008b66d", + "_testId": "urn:uuid:f0bd0641-e1de-4de3-ae50-b7deb76ab564", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the validFrom property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential becomes valid, which could be a date and time in the future or in the past." + "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validFrom%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20becomes%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20future%20or%20in%20the%20past.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88862, + "_idleStart": 59468, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 478, + "duration": 314, "state": "passed", "speed": "slow" } ] }, { - "id": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "id": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "cells": [ { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30223,26 +36427,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:39ae01e6-2618-4cef-b371-7014f98e24db", + "_testId": "urn:uuid:81e87626-e9ad-45a0-ba73-dfe1d3a27dd3", "cell": { "columnId": "ACA-py", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81583, + "_idleStart": 54302, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -30253,7 +36457,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:40Z\",\"validUntil\":\"2025-10-20T05:06:40Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -30263,8 +36467,8 @@ "type": [ "VerifiableCredential" ], - "validFrom": "2023-02-26T01:19:19Z", - "validUntil": "2023-02-26T01:19:20Z", + "validFrom": "2023-10-20T05:06:40Z", + "validUntil": "2025-10-20T05:06:40Z", "credentialSubject": { "id": "did:example:subject" }, @@ -30351,8 +36555,8 @@ }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30362,26 +36566,98 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:311237ff-56eb-47d8-85a5-1e3a19dc4149", + "_testId": "urn:uuid:ef70a53f-7de8-4538-9ac2-0b5a3fbf7d0f", "cell": { "columnId": "apicatalog.com", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 83264, + "_idleStart": 54980, "_onTimeout": null, "_repeat": null, "_destroyed": true }, "duration": 100, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "x4OXwqyr_QV07VKjQABGx", + "ctx": null, + "_testId": "urn:uuid:7f122a73-ad5e-46d1-8ecf-f2a31b935bea", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 55950, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 211, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", + "parent": "rQjai-sJaOjwrkl8Hylg-", + "ctx": null, + "_testId": "urn:uuid:e7784d3e-93cc-4800-8c9b-f2ef6782c6e0", + "cell": { + "columnId": "OpSecId", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 56231, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -30392,7 +36668,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-02-26T01:19:19Z\",\"validUntil\":\"2023-02-26T01:19:20Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-20T05:06:42Z\",\"validUntil\":\"2025-10-20T05:06:42Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -30402,12 +36678,16 @@ "type": [ "VerifiableCredential" ], - "validFrom": "2023-02-26T01:19:19Z", - "validUntil": "2023-02-26T01:19:20Z", + "validFrom": "2023-10-20T05:06:42Z", + "validUntil": "2025-10-20T05:06:42Z", "credentialSubject": { "id": "did:example:subject" }, - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -30476,20 +36756,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", - "status": 400, - "data": { - "id": "EXPIRED", - "message": "Expired" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30499,33 +36775,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:ef52d372-b171-4383-8b89-80152eb25b2c", + "_testId": "urn:uuid:f7121594-b9ad-442c-a034-b0d7c7bdbb2c", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "Procivis One Core", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84387, + "_idleStart": 57536, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 329, + "duration": 251, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30535,33 +36811,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:e199f331-bb57-4cb8-b1da-7be868f060e6", + "_testId": "urn:uuid:39d351cb-20fa-49e3-84e3-112572b51032", "cell": { - "columnId": "OpSecId", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "SpruceID", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 85730, + "_idleStart": 58340, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 306, + "duration": 154, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30571,33 +36847,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:02254525-30f3-4a53-a4c9-d329ab3cb9d2", + "_testId": "urn:uuid:e360262f-02d0-4271-8a81-e970e13c9bd8", "cell": { - "columnId": "Procivis One Core", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "VC Issuer Mock", + "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 87510, + "_idleStart": 59782, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 472, + "duration": 311, "state": "passed", "speed": "slow" - }, + } + ] + }, + { + "id": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "cells": [ { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30605,35 +36887,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "parent": "Ob5ewd8dsQKKiBvXuHo0e", "ctx": null, - "_testId": "urn:uuid:973c360c-82ec-4f96-9aff-f1131f191865", + "_testId": "urn:uuid:1cb60135-368c-4d5c-ae69-d1752ad37880", "cell": { - "columnId": "SpruceID", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "ACA-py", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88596, + "_idleStart": 54329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 115, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } }, { "type": "test", - "title": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-validuntil-ok.json')),\n 'Failed to accept a VC with a valid `validUntil` date-time.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json')),\n 'Failed to accept a VC using miliseconds in `validUntil`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json')),\n 'Failed to accept a VC using the subtractive timezone format.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC using an inccorect `validUntil` date-time ' +\n 'format.');\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30641,41 +36926,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "parent": "uN3Y4KMDR8U6g_FL8vOzj", "ctx": null, - "_testId": "urn:uuid:c9e779a7-414c-4cc9-a0ea-720e5e6405fb", + "_testId": "urn:uuid:4328b4c3-035b-4a99-a60e-51cb95eb4dec", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present, the value of the validUntil property MUST be an [XMLSCHEMA11-2] dateTimeStamp string value representing the date and time the credential ceases to be valid, which could be a date and time in the past or in the future." + "columnId": "apicatalog.com", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20present%2C%20the%20value%20of%20the%20validUntil%20property%20MUST%20be%20an%20%5BXMLSCHEMA11%2D2%5D%20dateTimeStamp%20string%20value%20representing%20the%20date%20and%20time%20the%20credential%20ceases%20to%20be%20valid%2C%20which%20could%20be%20a%20date%20and%20time%20in%20the%20past%20or%20in%20the%20future", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 89340, + "_idleStart": 55081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 473, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", - "cells": [ + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } + }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30683,138 +36965,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "parent": "x4OXwqyr_QV07VKjQABGx", "ctx": null, - "_testId": "urn:uuid:416ae9d6-e5f6-40c7-b9dc-2c37cd0a1be9", + "_testId": "urn:uuid:c12539bb-e359-4494-b142-a34cbc6427de", "cell": { - "columnId": "ACA-py", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "Digital Bazaar", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81611, + "_idleStart": 56161, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, - "state": "failed", + "duration": 0, + "state": "pending", "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-13T05:07:47Z\",\"validUntil\":\"2025-10-13T05:07:47Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "validFrom": "2023-10-13T05:07:47Z", - "validUntil": "2025-10-13T05:07:47Z", - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - }, - "options": { - "type": "Ed25519Signature2020" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } - }, - "operator": "doesNotReject" + "message": "TBD" } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30822,35 +37004,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "parent": "rQjai-sJaOjwrkl8Hylg-", "ctx": null, - "_testId": "urn:uuid:e6b52e82-66ea-4ba6-84f7-42ee761e3c95", + "_testId": "urn:uuid:ed5b4d31-2cab-4b23-ab57-0f324eb9ddef", "cell": { - "columnId": "apicatalog.com", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "OpSecId", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 83365, + "_idleStart": 56255, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 305, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30858,35 +37043,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "parent": "9nhbOBRZYxAKtKHnkAjav", "ctx": null, - "_testId": "urn:uuid:4022c598-61e2-45ae-ba44-d3e73db0f32b", + "_testId": "urn:uuid:7149cb3a-148c-4f79-8460-5fb587b94b0b", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "Procivis One Core", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84716, + "_idleStart": 57788, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 340, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30894,35 +37082,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "parent": "ZH7-26ZjHdcpEyfevlum3", "ctx": null, - "_testId": "urn:uuid:be2a2d10-d040-4ca4-bd16-cd5941730382", + "_testId": "urn:uuid:f941155d-5aa0-4452-a0e2-f82192dc6915", "cell": { - "columnId": "OpSecId", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "SpruceID", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86037, + "_idleStart": 58494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 233, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30930,35 +37121,51 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "parent": "bydeNgG6PcBs_O8TCrwr_", "ctx": null, - "_testId": "urn:uuid:527ee325-1036-43cf-b829-2a9a4ac9b749", + "_testId": "urn:uuid:263d8a03-6105-40fa-9e7a-345b8c35d3fe", "cell": { - "columnId": "Procivis One Core", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "VC Issuer Mock", + "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", + "skipMessage": "TBD" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 87983, + "_idleStart": 60093, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 226, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "state": "pending", + "err": { + "message": "TBD" + } + } + ] + } + ] + }, + { + "title": "Status", + "ctx": null, + "suites": [ + { + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -30967,76 +37174,141 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:24a00824-437a-452f-9d34-1980b245ec65", + "_testId": "urn:uuid:5b738238-5dad-46c6-a97d-8bf7d92af921", "cell": { - "columnId": "SpruceID", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." + "columnId": "ACA-py", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88711, + "_idleStart": 60094, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, - "state": "passed", - "speed": "slow" + "duration": 88, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.`;\n await testTemporality(endpoints);\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", - "ctx": null, - "_testId": "urn:uuid:6082f1c0-4fe2-4204-9952-ae771ce34920", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If a validUntil value also exists, the validFrom value MUST express a datetime that is temporally the same or earlier than the datetime expressed by the validUntil value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validUntil%20value%20also%20exists%2C%20the%20validFrom%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20earlier%20than%20the%20datetime%20expressed%20by%20the%20validUntil%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 89813, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 320, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "cells": [ - { - "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31045,27 +37317,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:311cee21-81bc-482d-9410-505d350ffc5c", + "_testId": "urn:uuid:de87f770-83ee-4ccd-87db-4b6c061ff214", "cell": { "columnId": "ACA-py", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81640, + "_idleStart": 60182, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 125, "state": "failed", "err": { "generatedMessage": false, @@ -31076,21 +37348,26 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"validFrom\":\"2023-10-13T05:07:47Z\",\"validUntil\":\"2025-10-13T05:07:47Z\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2" + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } ], "type": [ "VerifiableCredential" ], - "validFrom": "2023-10-13T05:07:47Z", - "validUntil": "2025-10-13T05:07:47Z", "credentialSubject": { "id": "did:example:subject" }, + "credentialStatus": { + "id": "did:example:status", + "type": "CredentialStatusList2017" + }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -31174,80 +37451,8 @@ }, { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", - "ctx": null, - "_testId": "urn:uuid:91cd01b5-21ba-45d3-8286-c819b1cb22b2", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 83670, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 393, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", - "ctx": null, - "_testId": "urn:uuid:9965d613-cf1c-4a02-82d0-868ccaf6b2ee", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 85057, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 263, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31255,35 +37460,42 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:31e92e34-5f93-4690-a797-a6d4bc2acaac", + "_testId": "urn:uuid:54709ddb-bdf5-4f92-89cf-6f99e85d30a2", "cell": { - "columnId": "OpSecId", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + "columnId": "ACA-py", + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86271, + "_idleStart": 60308, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 246, - "state": "passed", - "speed": "slow" - }, + "duration": 1, + "state": "pending", + "err": { + "message": "Not testable with automation." + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -31292,34 +37504,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "type": "hook", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:23faa669-6f53-41ca-822d-40998d7b8360", - "cell": { - "columnId": "Procivis One Core", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 88210, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 245, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "OiCCS6fBXLuU_PjzPM_3I", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "_testId": "urn:uuid:04bd9083-bd29-4d67-95ec-12ed452078ab" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31328,34 +37545,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:35f07803-12a2-45c1-bfc9-30f9435dc53f", + "_testId": "urn:uuid:6705f767-9c4c-4538-8648-b8b3dd0c08fc", "cell": { - "columnId": "SpruceID", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." + "columnId": "apicatalog.com", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88789, + "_idleStart": 60308, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, - "state": "passed", - "speed": "medium" + "duration": 407, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.`;\n await testTemporality(endpoints);\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31364,79 +37585,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", - "ctx": null, - "_testId": "urn:uuid:83b41cc4-9da8-49aa-9283-30027999caba", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If a validFrom value also exists, the validUntil value MUST express a datetime that is temporally the same or later than the datetime expressed by the validFrom value." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=If%20a%20validFrom%20value%20also%20exists%2C%20the%20validUntil%20value%20MUST%20express%20a%20datetime%20that%20is%20temporally%20the%20same%20or%20later%20than%20the%20datetime%20expressed%20by%20the%20validFrom%20value.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 90134, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 332, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", - "cells": [ - { - "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "X8HI1bxPFxDG9x2Enm-oq", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:0c3da97b-655a-43a2-9b0a-f007ccf74de2", + "_testId": "urn:uuid:f7f91116-48d0-404b-943d-9af1af925d28", "cell": { - "columnId": "ACA-py", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "apicatalog.com", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 81668, + "_idleStart": 60715, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", + "duration": 165, + "state": "failed", "err": { - "message": "TBD" + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" } }, { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31445,23 +37625,23 @@ "timedOut": false, "_currentRetry": 0, "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "wMOSLZXwrjVLIQBjnEZ53", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:71b2ffcc-787d-4d5f-8da0-a36b921aa2b8", + "_testId": "urn:uuid:d77cd0d8-a3f6-47f2-bfaf-f8e042972f4e", "cell": { "columnId": "apicatalog.com", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 84062, + "_idleStart": 60880, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -31469,13 +37649,17 @@ "duration": 0, "state": "pending", "err": { - "message": "TBD" + "message": "Not testable with automation." } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -31483,38 +37667,40 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "dOxoz-vsVoWBQGTmnl6nH", + "pending": false, + "type": "hook", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:a7f24eb7-3c09-4cf9-aafa-0f7f06726be9", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 85321, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1, - "state": "pending", - "err": { - "message": "TBD" - } - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "OiCCS6fBXLuU_PjzPM_3I", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "_testId": "urn:uuid:6324b473-be4d-4ed6-a270-2d576f8e38b5" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31522,38 +37708,35 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "vnn3fKatl5xAeDQQp1eVN", + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:1ebc039c-f7a1-4854-a3fc-97ddae10bc0b", + "_testId": "urn:uuid:56fd6f5e-5b03-495f-9292-3deba63817f0", "cell": { - "columnId": "OpSecId", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "Digital Bazaar", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 86517, + "_idleStart": 60881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "TBD" - } + "duration": 471, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31561,38 +37744,35 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "aC53mRzkZ5csGvVK2pWz1", + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:fd4053cd-2e59-439c-9f8f-5f05af5c899b", + "_testId": "urn:uuid:0438266b-5fb3-4641-aeda-54c52748879d", "cell": { - "columnId": "Procivis One Core", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "Digital Bazaar", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88455, + "_idleStart": 61352, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "TBD" - } + "duration": 172, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31601,23 +37781,23 @@ "timedOut": false, "_currentRetry": 0, "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "_Dz8TwpcSYasCs4mMR_2S", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:5c94cb4f-3dd4-4fc0-b50e-c7d28f10bb17", + "_testId": "urn:uuid:e5299cd2-4b3e-4f3b-b0e2-1357808b5390", "cell": { - "columnId": "SpruceID", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" + "columnId": "Digital Bazaar", + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 88862, + "_idleStart": 61524, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -31625,13 +37805,17 @@ "duration": 0, "state": "pending", "err": { - "message": "TBD" + "message": "Not testable with automation." } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.`;\n // TODO: add test using regular expression from spec.\n // https://w3c.github.io/vc-data-model/#example-regular-expression-to-detect-a-valid-xml-schema-1-1-part-2-datetimestamp\n // eslint-disable-next-line max-len, no-unused-vars\n const regexp = /-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))/;\n this.test.cell.skipMessage = 'TBD';\n this.skip();\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -31639,51 +37823,40 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/4-9-validity-period.js", - "parent": "yh3DLwjWR4v-mwAGzdA54", + "pending": false, + "type": "hook", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:bab81334-e0d1-4f14-95e4-12236d9efde9", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.", - "skipMessage": "TBD" - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#validity-period:~:text=Time%20values%20that%20are%20incorrectly%20serialized%20without%20an%20offset%20MUST%20be%20interpreted%20as%20UTC.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 90467, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, "duration": 0, - "state": "pending", - "err": { - "message": "TBD" - } + "_error": null } - ] - } - ] - }, - { - "title": "Status", - "ctx": null, - "suites": [ + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "OiCCS6fBXLuU_PjzPM_3I", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "_testId": "urn:uuid:05ec6857-6439-4ba5-b905-c45d37b8ff9b" + }, { - "title": "ACA-py", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31693,11 +37866,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:90c2ecb5-20f1-4acd-8234-58ddc48711a4", + "_testId": "urn:uuid:38f97e77-8a61-46a1-909d-03328da75036", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -31707,12 +37880,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90467, + "_idleStart": 61524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 93, "state": "failed", "err": { "generatedMessage": false, @@ -31723,7 +37896,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -31742,10 +37915,11 @@ "credentialStatus": { "type": "CredentialStatusList2017" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -31814,11 +37988,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -31826,7 +37997,7 @@ { "type": "test", "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -31836,11 +38007,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:88ae2016-076f-41ab-8f98-69b4b83ee87f", + "_testId": "urn:uuid:6ce5ad61-f35e-46b5-a29e-0fb767ca51d4", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -31850,12 +38021,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90562, + "_idleStart": 61618, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 145, + "duration": 340, "state": "failed", "err": { "generatedMessage": false, @@ -31866,7 +38037,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -31886,10 +38057,11 @@ "id": "did:example:status", "type": "CredentialStatusList2017" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -31958,11 +38130,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -31980,11 +38149,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:d2afb9ea-6643-4058-82d9-d091c2af43b0", + "_testId": "urn:uuid:b224a9f7-55a4-45c9-b39e-adb402fb28f0", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "Credential status specifications MUST NOT enable tracking of individuals", "skipMessage": "Not testable with automation." }, @@ -31995,12 +38164,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90707, + "_idleStart": 61957, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending", "err": { "message": "Not testable with automation." @@ -32012,7 +38181,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -32023,7 +38192,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -32042,19 +38211,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", + "parent": "OiCCS6fBXLuU_PjzPM_3I", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:7007c8b5-0d6e-44aa-8c64-9f6ae4483296" + "_testId": "urn:uuid:b76cecf4-1858-4dd2-9db1-ae4d57a43dd1" }, { - "title": "apicatalog.com", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32064,11 +38233,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, - "_testId": "urn:uuid:32c09efd-efb4-4ba8-953e-3e384111b937", + "_testId": "urn:uuid:9760a70b-8f9f-4c62-b9df-e2134f266044", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -32078,26 +38247,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90707, + "_idleStart": 61958, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 537, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 361, + "state": "passed", + "speed": "slow" }, { "type": "test", "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32107,11 +38269,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, - "_testId": "urn:uuid:c085d297-e144-433a-b7aa-d46a4a132753", + "_testId": "urn:uuid:89eebc16-0ad1-4c8d-9d26-84fceb3256a9", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -32121,21 +38283,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91245, + "_idleStart": 62320, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 97, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 418, + "state": "passed", + "speed": "slow" }, { "type": "test", @@ -32150,11 +38305,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, - "_testId": "urn:uuid:e2488817-3f1f-4319-9edf-a99381031570", + "_testId": "urn:uuid:1ca88e0d-46b5-48eb-b77d-a4f40e34d2a6", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "Credential status specifications MUST NOT enable tracking of individuals", "skipMessage": "Not testable with automation." }, @@ -32165,7 +38320,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91342, + "_idleStart": 62738, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -32182,7 +38337,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -32193,7 +38348,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -32212,19 +38367,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", + "parent": "OiCCS6fBXLuU_PjzPM_3I", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:20aa2627-9b19-405f-a350-8f882a025e0b" + "_testId": "urn:uuid:948735cb-7e0f-468b-a951-cf62c023f5aa" }, { - "title": "Digital Bazaar", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32234,11 +38389,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, - "_testId": "urn:uuid:e535e5eb-2081-4a81-a45b-a646f869f97f", + "_testId": "urn:uuid:55aa7650-cccd-45d8-938d-57b42eb3572c", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -32248,19 +38403,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91343, + "_idleStart": 62739, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 190, + "duration": 157, "state": "passed", "speed": "slow" }, { "type": "test", "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32270,11 +38425,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, - "_testId": "urn:uuid:1cf23021-2466-48b4-b845-80bcf5c894b6", + "_testId": "urn:uuid:f92e4cf2-3e82-4f91-b591-d7f3e5897423", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -32284,12 +38439,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91533, + "_idleStart": 62896, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 162, + "duration": 137, "state": "passed", "speed": "slow" }, @@ -32306,11 +38461,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, - "_testId": "urn:uuid:2ce4f7de-7087-4178-955a-062463193931", + "_testId": "urn:uuid:6bc399d8-faee-42a1-ad81-f3ae05fa00e5", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "Credential status specifications MUST NOT enable tracking of individuals", "skipMessage": "Not testable with automation." }, @@ -32321,7 +38476,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91696, + "_idleStart": 63033, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -32338,7 +38493,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -32349,7 +38504,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -32368,19 +38523,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", + "parent": "OiCCS6fBXLuU_PjzPM_3I", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:2289b858-fae5-453a-804d-c95b706c7250" + "_testId": "urn:uuid:61bf1ac4-e917-465e-9ecb-e4a816fa0306" }, { - "title": "OpSecId", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32390,11 +38545,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, - "_testId": "urn:uuid:87db458e-2e88-48a1-9bc2-14403855668d", + "_testId": "urn:uuid:a2744e63-4513-483c-a650-fc3763713d45", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -32404,19 +38559,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91696, + "_idleStart": 63033, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 288, + "duration": 284, "state": "passed", "speed": "slow" }, { "type": "test", "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32426,11 +38581,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, - "_testId": "urn:uuid:21d4574d-987d-471f-bc74-8985e28d28fb", + "_testId": "urn:uuid:534f780e-6213-40fe-a715-30849cc26233", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -32440,12 +38595,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91985, + "_idleStart": 63317, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 249, + "duration": 258, "state": "passed", "speed": "slow" }, @@ -32462,11 +38617,11 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, - "_testId": "urn:uuid:3f1fc53b-dbaf-432f-a0ac-28f218f22c47", + "_testId": "urn:uuid:06eccf71-5a78-4116-872d-87949fbbf8bb", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", "rowId": "Credential status specifications MUST NOT enable tracking of individuals", "skipMessage": "Not testable with automation." }, @@ -32477,7 +38632,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92235, + "_idleStart": 63576, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -32494,7 +38649,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -32505,7 +38660,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "APFXyu6_J39C-RtmlZFcb", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -32524,19 +38679,49 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", + "parent": "OiCCS6fBXLuU_PjzPM_3I", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:eb2c193b-4339-4b84-8bef-dde2fef76902" - }, + "_testId": "urn:uuid:91afcb40-4457-4e08-b666-375d70c991f6" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:a2b53574-fe15-41cf-a2de-6ed1f0d0a920", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ + "id": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "cells": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32546,11 +38731,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:a0bc2039-ade1-430b-a326-e790b7664b52", + "_testId": "urn:uuid:5b738238-5dad-46c6-a97d-8bf7d92af921", "cell": { - "columnId": "Procivis One Core", + "columnId": "ACA-py", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -32560,19 +38745,126 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92235, + "_idleStart": 60094, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 351, - "state": "passed", - "speed": "slow" + "duration": 88, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32582,33 +38874,73 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:33ced2f1-9010-4906-8281-3b3717871914", + "_testId": "urn:uuid:6705f767-9c4c-4538-8648-b8b3dd0c08fc", "cell": { - "columnId": "Procivis One Core", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "apicatalog.com", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92585, + "_idleStart": 60308, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 320, + "duration": 407, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, + { + "type": "test", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "cYe5ULakMqXHv8H1Ns1iK", + "ctx": null, + "_testId": "urn:uuid:56fd6f5e-5b03-495f-9292-3deba63817f0", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 60881, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 471, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32616,83 +38948,140 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:2ea0ff04-8cbd-48f2-a609-264dc566d678", + "_testId": "urn:uuid:38f97e77-8a61-46a1-909d-03328da75036", "cell": { - "columnId": "Procivis One Core", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "OpSecId", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92906, + "_idleStart": 61524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", + "duration": 93, + "state": "failed", "err": { - "message": "Not testable with automation." + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "wc7MA-kXcW_lh5yRlIRxg", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:84d9ca5c-1e21-49aa-8e35-da2ea87d4628" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32702,11 +39091,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, - "_testId": "urn:uuid:629ef15c-d9b6-4d78-9831-55318e4e287d", + "_testId": "urn:uuid:9760a70b-8f9f-4c62-b9df-e2134f266044", "cell": { - "columnId": "SpruceID", + "columnId": "Procivis One Core", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -32716,19 +39105,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92906, + "_idleStart": 61958, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 361, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32738,33 +39127,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, - "_testId": "urn:uuid:2a9fbc4e-874d-4a9f-b7d8-26bde430f2ad", + "_testId": "urn:uuid:55aa7650-cccd-45d8-938d-57b42eb3572c", "cell": { "columnId": "SpruceID", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92989, + "_idleStart": 62739, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 157, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32772,83 +39161,41 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, - "_testId": "urn:uuid:f649b09d-a718-485a-9ea2-0cb239c88b58", + "_testId": "urn:uuid:a2744e63-4513-483c-a650-fc3763713d45", "cell": { - "columnId": "SpruceID", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "VC Issuer Mock", + "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93079, + "_idleStart": 63033, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "5OJ_bOO5vty0DEwOcll8V", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null + "duration": 284, + "state": "passed", + "speed": "slow" } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:50c6e7c9-5f7f-4487-a9d5-477fcd97ec83" + ] }, { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ + "id": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "cells": [ { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32858,33 +39205,141 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", "ctx": null, - "_testId": "urn:uuid:78e96e53-2e5d-4134-9297-624a94fdb364", + "_testId": "urn:uuid:de87f770-83ee-4ccd-87db-4b6c061ff214", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "columnId": "ACA-py", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93079, + "_idleStart": 60182, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 378, - "state": "passed", - "speed": "slow" + "duration": 125, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "credentialStatus": { + "id": "did:example:status", + "type": "CredentialStatusList2017" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32894,11 +39349,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:62fba13e-b644-4825-a2ab-a47c5976efca", + "_testId": "urn:uuid:f7f91116-48d0-404b-943d-9af1af925d28", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "apicatalog.com", "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -32908,19 +39363,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93457, + "_idleStart": 60715, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 351, - "state": "passed", - "speed": "slow" + "duration": 165, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -32928,113 +39387,35 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, + "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:e93fed86-1535-466f-9596-0702cfc38afc", + "_testId": "urn:uuid:0438266b-5fb3-4641-aeda-54c52748879d", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "Digital Bazaar", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93809, + "_idleStart": 61352, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "KBOkRlXET29R5zqz-O7hY", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "P4tN0PdKYgTn7tWL-66QL", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "_testId": "urn:uuid:14bbe37d-58a7-45d2-87a6-8e51cadd3545" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:2e6a3179-d00b-415a-89a1-1eacbdbd9ab1", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ - { - "id": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "cells": [ + "duration": 172, + "state": "passed", + "speed": "slow" + }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33044,26 +39425,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:90c2ecb5-20f1-4acd-8234-58ddc48711a4", + "_testId": "urn:uuid:6ce5ad61-f35e-46b5-a29e-0fb767ca51d4", "cell": { - "columnId": "ACA-py", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "columnId": "OpSecId", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90467, + "_idleStart": 61618, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 340, "state": "failed", "err": { "generatedMessage": false, @@ -33074,7 +39455,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -33091,12 +39472,14 @@ "id": "did:example:subject" }, "credentialStatus": { + "id": "did:example:status", "type": "CredentialStatusList2017" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -33165,19 +39548,88 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "u6LYyiBAq0wiHQanYiC5y", + "ctx": null, + "_testId": "urn:uuid:89eebc16-0ad1-4c8d-9d26-84fceb3256a9", + "cell": { + "columnId": "Procivis One Core", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 62320, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 418, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "mRsl9OV6U5gCrWqZgRD6G", + "ctx": null, + "_testId": "urn:uuid:f92e4cf2-3e82-4f91-b591-d7f3e5897423", + "cell": { + "columnId": "SpruceID", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 62896, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 137, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33187,40 +39639,117 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "parent": "uzn6fiBAKDIy_XA818BGG", + "ctx": null, + "_testId": "urn:uuid:534f780e-6213-40fe-a715-30849cc26233", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 63317, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 258, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "id": "Credential status specifications MUST NOT enable tracking of individuals", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "cells": [ + { + "type": "test", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "TSV9UCmcpRHSTFSQ9uqX6", + "ctx": null, + "_testId": "urn:uuid:54709ddb-bdf5-4f92-89cf-6f99e85d30a2", + "cell": { + "columnId": "ACA-py", + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 60308, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1, + "state": "pending", + "err": { + "message": "Not testable with automation." + } + }, + { + "type": "test", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": true, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", + "parent": "U4NeRVAkCzeuBLCxkexH_", "ctx": null, - "_testId": "urn:uuid:32c09efd-efb4-4ba8-953e-3e384111b937", + "_testId": "urn:uuid:d77cd0d8-a3f6-47f2-bfaf-f8e042972f4e", "cell": { "columnId": "apicatalog.com", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90707, + "_idleStart": 60880, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 537, - "state": "failed", + "duration": 0, + "state": "pending", "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" + "message": "Not testable with automation." } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33228,35 +39757,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "parent": "cYe5ULakMqXHv8H1Ns1iK", "ctx": null, - "_testId": "urn:uuid:e535e5eb-2081-4a81-a45b-a646f869f97f", + "_testId": "urn:uuid:e5299cd2-4b3e-4f3b-b0e2-1357808b5390", "cell": { "columnId": "Digital Bazaar", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91343, + "_idleStart": 61524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 190, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "Not testable with automation." + } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33264,35 +39796,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "parent": "lLKRbdYgeLYCig2iWeg0D", "ctx": null, - "_testId": "urn:uuid:87db458e-2e88-48a1-9bc2-14403855668d", + "_testId": "urn:uuid:b224a9f7-55a4-45c9-b39e-adb402fb28f0", "cell": { "columnId": "OpSecId", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91696, + "_idleStart": 61957, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 288, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "Not testable with automation." + } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33300,35 +39835,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "parent": "u6LYyiBAq0wiHQanYiC5y", "ctx": null, - "_testId": "urn:uuid:a0bc2039-ade1-430b-a326-e790b7664b52", + "_testId": "urn:uuid:1ca88e0d-46b5-48eb-b77d-a4f40e34d2a6", "cell": { "columnId": "Procivis One Core", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92235, + "_idleStart": 62738, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 351, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "Not testable with automation." + } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33336,35 +39874,38 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "parent": "mRsl9OV6U5gCrWqZgRD6G", "ctx": null, - "_testId": "urn:uuid:629ef15c-d9b6-4d78-9831-55318e4e287d", + "_testId": "urn:uuid:6bc399d8-faee-42a1-ad81-f3ae05fa00e5", "cell": { "columnId": "SpruceID", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92906, + "_idleStart": 63033, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "Not testable with automation." + } }, { "type": "test", - "title": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-missing-id-ok.json')),\n 'Failed to accept a VC with `credentialStatus` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with multiple `credentialStatus.id` values.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", + "title": "Credential status specifications MUST NOT enable tracking of individuals", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33372,41 +39913,51 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": false, + "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", + "parent": "uzn6fiBAKDIy_XA818BGG", "ctx": null, - "_testId": "urn:uuid:78e96e53-2e5d-4134-9297-624a94fdb364", + "_testId": "urn:uuid:06eccf71-5a78-4116-872d-87949fbbf8bb", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed." + "rowId": "Credential status specifications MUST NOT enable tracking of individuals", + "skipMessage": "Not testable with automation." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=credential%20status%20object.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93079, + "_idleStart": 63576, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 378, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "pending", + "err": { + "message": "Not testable with automation." + } } ] - }, + } + ] + }, + { + "title": "Data Schemas", + "ctx": null, + "suites": [ { - "id": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "cells": [ + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33415,27 +39966,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:88ae2016-076f-41ab-8f98-69b4b83ee87f", + "_testId": "urn:uuid:cf16de48-0e28-4e2f-8bd0-48ba4b6335d1", "cell": { "columnId": "ACA-py", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90562, + "_idleStart": 63576, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 145, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -33446,26 +39997,23 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialStatusList2017\":\"https://example.org/examples#CredentialStatusList2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"credentialStatus\":{\"id\":\"did:example:status\",\"type\":\"CredentialStatusList2017\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { "@context": [ - "https://www.w3.org/ns/credentials/v2", - { - "CredentialStatusList2017": "https://example.org/examples#CredentialStatusList2017" - } + "https://www.w3.org/ns/credentials/v2" ], "type": [ "VerifiableCredential" ], + "credentialSchema": { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, "credentialSubject": { "id": "did:example:subject" }, - "credentialStatus": { - "id": "did:example:status", - "type": "CredentialStatusList2017" - }, "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" }, "options": { @@ -33549,51 +40097,8 @@ }, { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", - "ctx": null, - "_testId": "urn:uuid:c085d297-e144-433a-b7aa-d46a4a132753", - "cell": { - "columnId": "apicatalog.com", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 91245, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 97, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } - }, - { - "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33602,34 +40107,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:1cf23021-2466-48b4-b845-80bcf5c894b6", + "_testId": "urn:uuid:6e0e1aa2-3435-477a-8b86-59c4a633d520", "cell": { - "columnId": "Digital Bazaar", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "ACA-py", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91533, + "_idleStart": 63603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 162, + "duration": 82, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33638,34 +40143,149 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:21d4574d-987d-471f-bc74-8985e28d28fb", + "_testId": "urn:uuid:3438c574-11ae-47e4-a514-38644cebf133", "cell": { - "columnId": "OpSecId", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "ACA-py", + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91985, + "_idleStart": 63685, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 249, - "state": "passed", - "speed": "slow" - }, + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSchema": [ + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/2" + } + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -33674,34 +40294,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "type": "hook", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:33ced2f1-9010-4906-8281-3b3717871914", - "cell": { - "columnId": "Procivis One Core", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 92585, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 320, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6G6fNOMZo_rOjjKHbQJeX", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "_testId": "urn:uuid:8cb1238c-4144-4a63-8d7f-3ceab42a6377" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33710,34 +40335,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:2a9fbc4e-874d-4a9f-b7d8-26bde430f2ad", + "_testId": "urn:uuid:fa94c1c1-2955-4d33-b36f-d8e7a3aa306f", "cell": { - "columnId": "SpruceID", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "apicatalog.com", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92989, + "_idleStart": 63712, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 200, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC missing `credentialStatus.type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a non-URL `credentialStatus.type`.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-status-ok.json')),\n 'Failed to accept a VC with a valid `credentialStatus`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33746,79 +40371,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", - "ctx": null, - "_testId": "urn:uuid:62fba13e-b644-4825-a2ab-a47c5976efca", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=The%20type%20property%20is%20REQUIRED.%20It%20is%20used%20to%20express%20the%20type%20of%20status%20information%20expressed%20by%20the%20object.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 93457, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 351, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "Credential status specifications MUST NOT enable tracking of individuals", - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", - "cells": [ - { - "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "qps9bm1tIdjE_zYsZ3ehO", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:d2afb9ea-6643-4058-82d9-d091c2af43b0", + "_testId": "urn:uuid:74fe6e2e-ea6a-4142-be93-3b5170c7df1d", "cell": { - "columnId": "ACA-py", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "apicatalog.com", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 90707, + "_idleStart": 63912, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, - "state": "pending", + "duration": 95, + "state": "failed", "err": { - "message": "Not testable with automation." + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" } }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33826,38 +40410,39 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "p4ha1qFAGfkL-c7EMw1FX", + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:e2488817-3f1f-4319-9edf-a99381031570", + "_testId": "urn:uuid:13ed8f65-5d9c-46c8-a9b5-23a1a31de99a", "cell": { "columnId": "apicatalog.com", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 91342, + "_idleStart": 64007, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } - }, + "duration": 274, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -33865,77 +40450,76 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "l8jsir1kaajQ_RCkU2Dz7", + "pending": false, + "type": "hook", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:2ce4f7de-7087-4178-955a-062463193931", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 91696, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } - }, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6G6fNOMZo_rOjjKHbQJeX", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "_testId": "urn:uuid:d6ccf122-2ab3-42cd-8de2-7f59c45d3ca0" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, "_slow": 75, "_retries": -1, "timedOut": false, - "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "APFXyu6_J39C-RtmlZFcb", + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:3f1fc53b-dbaf-432f-a0ac-28f218f22c47", + "_testId": "urn:uuid:22c9b0d4-6884-4d57-8bd3-75b6d0c9b8e5", "cell": { - "columnId": "OpSecId", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "Digital Bazaar", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92235, + "_idleStart": 64281, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } + "duration": 362, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33943,38 +40527,39 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "wc7MA-kXcW_lh5yRlIRxg", + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:2ea0ff04-8cbd-48f2-a609-264dc566d678", + "_testId": "urn:uuid:92799628-7161-42a5-966d-14e3c644c733", "cell": { - "columnId": "Procivis One Core", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "Digital Bazaar", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 92906, + "_idleStart": 64643, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", + "duration": 132, + "state": "failed", "err": { - "message": "Not testable with automation." + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" } }, { "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -33982,38 +40567,39 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "5OJ_bOO5vty0DEwOcll8V", + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:f649b09d-a718-485a-9ea2-0cb239c88b58", + "_testId": "urn:uuid:67868914-6f02-4a7f-a5d6-aba55cebb609", "cell": { - "columnId": "SpruceID", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." + "columnId": "Digital Bazaar", + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93079, + "_idleStart": 64775, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } - }, + "duration": 82, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "Credential status specifications MUST NOT enable tracking of individuals", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals`;\n this.test.cell.skipMessage = 'Not testable with automation.';\n this.skip();\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -34021,44 +40607,33 @@ "_retries": -1, "timedOut": false, "_currentRetry": 0, - "pending": true, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/410-status.js", - "parent": "KBOkRlXET29R5zqz-O7hY", + "pending": false, + "type": "hook", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:e93fed86-1535-466f-9596-0702cfc38afc", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Credential status specifications MUST NOT enable tracking of individuals", - "skipMessage": "Not testable with automation." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#status:~:text=Credential%20status%20specifications%20MUST%20NOT%20enable%20tracking%20of%20individuals", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 93809, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, "duration": 0, - "state": "pending", - "err": { - "message": "Not testable with automation." - } + "_error": null } - ] - } - ] - }, - { - "title": "Data Schemas", - "ctx": null, - "suites": [ + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6G6fNOMZo_rOjjKHbQJeX", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "_testId": "urn:uuid:ce148495-c362-40f7-9e27-aa9f30b989d3" + }, { - "title": "ACA-py", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ @@ -34075,11 +40650,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, - "_testId": "urn:uuid:ce7075d1-97fb-408f-864d-b3ba0f4601ee", + "_testId": "urn:uuid:7fe2d1af-4a40-44bc-b10c-456eb44d4bc5", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, @@ -34089,12 +40664,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93809, + "_idleStart": 64857, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 23, "state": "failed", "err": { "generatedMessage": false, @@ -34105,7 +40680,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -34122,10 +40697,11 @@ "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -34194,11 +40770,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -34206,7 +40779,7 @@ { "type": "test", "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34216,11 +40789,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, - "_testId": "urn:uuid:8659b249-e741-49ac-b503-a020de3168b7", + "_testId": "urn:uuid:a5b053dc-edbf-4b25-a6fb-551877e16e18", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, @@ -34230,14 +40803,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93838, + "_idleStart": 64881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 68, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -34252,11 +40825,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, - "_testId": "urn:uuid:4493dc78-70b0-4da7-8894-547a910b95d4", + "_testId": "urn:uuid:aa0c5722-aabb-47ef-8a59-a3db4f8e5975", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, @@ -34266,12 +40839,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93922, + "_idleStart": 64950, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 22, "state": "failed", "err": { "generatedMessage": false, @@ -34282,7 +40855,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", "method": "POST", "json": { "credential": { @@ -34305,10 +40878,11 @@ "credentialSubject": { "id": "did:example:subject" }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" }, "options": { - "type": "Ed25519Signature2020" + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" } }, "agent": { @@ -34377,11 +40951,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", - "status": 400, - "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" - } + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 }, "operator": "doesNotReject" } @@ -34392,7 +40963,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -34403,7 +40974,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -34422,12 +40993,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", + "parent": "6G6fNOMZo_rOjjKHbQJeX", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:8e922ecf-2eae-4adf-9248-958a69fb57ce" + "_testId": "urn:uuid:ebd42912-581b-4855-9021-abc042156726" }, { - "title": "apicatalog.com", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ @@ -34444,11 +41015,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:bcef6f47-1eef-43a8-82e6-3228e86b5ab6", + "_testId": "urn:uuid:62afed2f-c6c0-4e5a-9bb7-52bbf40f8961", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, @@ -34458,19 +41029,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93950, + "_idleStart": 64973, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 517, + "duration": 268, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34480,11 +41051,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:0c3a5f31-5ec3-41b6-a7cc-84bcd576e5b5", + "_testId": "urn:uuid:13e5d9e9-9041-485d-be96-cccd3fd3546b", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, @@ -34494,21 +41065,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 94467, + "_idleStart": 65241, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 193, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 347, + "state": "passed", + "speed": "slow" }, { "type": "test", @@ -34523,11 +41087,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:92afef2f-8954-4422-a03c-b03cd302c39f", + "_testId": "urn:uuid:e4dc0546-2924-48c5-9421-e6dff0216f06", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, @@ -34537,12 +41101,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 94661, + "_idleStart": 65588, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 200, + "duration": 133, "state": "passed", "speed": "slow" } @@ -34552,7 +41116,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -34563,7 +41127,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -34582,12 +41146,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", + "parent": "6G6fNOMZo_rOjjKHbQJeX", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:783f0f5c-5faf-4ad1-8b2e-3a94c7a1c65b" + "_testId": "urn:uuid:89413c45-e81b-4f9b-9678-7a58b7eee912" }, { - "title": "Digital Bazaar", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ @@ -34604,11 +41168,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:59f50a90-de9b-4636-87a2-2fa26e0db20a", + "_testId": "urn:uuid:ec76390b-dd1b-4519-8bf3-8db43ed8cf8d", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, @@ -34618,19 +41182,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 94860, + "_idleStart": 65722, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 182, + "duration": 128, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34640,11 +41204,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:7d2e2f57-5bf8-4bb4-b808-396ef2460745", + "_testId": "urn:uuid:e479f1ec-f224-457f-9c9f-ba2ccbd00af4", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, @@ -34654,21 +41218,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95042, + "_idleStart": 65849, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, - "operator": "rejects" - } + "duration": 126, + "state": "passed", + "speed": "slow" }, { "type": "test", @@ -34683,11 +41240,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:2b544d00-1c8b-4f68-b750-4ca4da8987bf", + "_testId": "urn:uuid:b6dbe7ad-1e58-44ea-8d12-18e4edb7514e", "cell": { - "columnId": "Digital Bazaar", + "columnId": "SpruceID", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, @@ -34697,14 +41254,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95155, + "_idleStart": 65975, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 82, + "duration": 48, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -34712,7 +41269,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -34723,7 +41280,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -34742,12 +41299,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", + "parent": "6G6fNOMZo_rOjjKHbQJeX", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:663f51b6-741b-4fef-95c7-2df496cacc92" + "_testId": "urn:uuid:5620dbca-4c62-4196-aa31-b9c128c91480" }, { - "title": "OpSecId", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ @@ -34764,11 +41321,335 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "parent": "o9uF_vhBB6k1vuXsYL5yg", "ctx": null, - "_testId": "urn:uuid:6c83ff80-d164-47bc-8f9a-aca9fd0bbd80", + "_testId": "urn:uuid:1ca38a44-62c7-41dc-8b34-b9807275442a", "cell": { - "columnId": "OpSecId", + "columnId": "VC Issuer Mock", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 66023, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 248, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "o9uF_vhBB6k1vuXsYL5yg", + "ctx": null, + "_testId": "urn:uuid:00feeb43-6cac-465c-bb84-249781efd826", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 66272, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 471, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "o9uF_vhBB6k1vuXsYL5yg", + "ctx": null, + "_testId": "urn:uuid:01367195-124f-4bdd-94a2-9787d2b1d591", + "cell": { + "columnId": "VC Issuer Mock", + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 66742, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 95, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ + { + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "o9uF_vhBB6k1vuXsYL5yg", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "6G6fNOMZo_rOjjKHbQJeX", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "_testId": "urn:uuid:2f40f4ff-174b-48ba-a0aa-f9eb397ac2a5" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:43c92149-5c29-4cea-9cca-a72caa36a89c", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ + { + "id": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "cells": [ + { + "type": "test", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "djb-4_CTvWzHm8Ne-uMV8", + "ctx": null, + "_testId": "urn:uuid:cf16de48-0e28-4e2f-8bd0-48ba4b6335d1", + "cell": { + "columnId": "ACA-py", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 63576, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 26, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSchema": { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + }, + "options": { + "type": "Ed25519Signature2020" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "status": 400, + "data": { + "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + } + }, + "operator": "doesNotReject" + } + }, + { + "type": "test", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", + "parent": "dKpsfewITvzM5kWjGSA7b", + "ctx": null, + "_testId": "urn:uuid:fa94c1c1-2955-4d33-b36f-d8e7a3aa306f", + "cell": { + "columnId": "apicatalog.com", "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, @@ -34778,19 +41659,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95238, + "_idleStart": 63712, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 152, + "duration": 200, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34800,33 +41681,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:87237fa3-7679-46f8-bde4-1c6d8d1d1559", + "_testId": "urn:uuid:22c9b0d4-6884-4d57-8bd3-75b6d0c9b8e5", "cell": { - "columnId": "OpSecId", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "Digital Bazaar", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95390, + "_idleStart": 64281, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 204, + "duration": 362, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34836,74 +41717,132 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, - "_testId": "urn:uuid:af6a4e06-84b9-43ff-aaf4-c3d930bf5aab", + "_testId": "urn:uuid:7fe2d1af-4a40-44bc-b10c-456eb44d4bc5", "cell": { "columnId": "OpSecId", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95594, + "_idleStart": 64857, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "RX806TQDg-tNG2bzvKSCc", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:128e6f10-7655-4ed6-a04c-f1b53e7a17b1" - }, - { - "title": "Procivis One Core", - "ctx": null, - "suites": [], - "tests": [ + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSchema": { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } + }, { "type": "test", "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", @@ -34917,9 +41856,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:afbc8fed-978b-46af-b329-a869c8bd0bd6", + "_testId": "urn:uuid:62afed2f-c6c0-4e5a-9bb7-52bbf40f8961", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." @@ -34931,19 +41870,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95699, + "_idleStart": 64973, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 259, + "duration": 268, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34953,33 +41892,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:4f5d2988-4158-4310-b441-e1b19d69523e", + "_testId": "urn:uuid:ec76390b-dd1b-4519-8bf3-8db43ed8cf8d", "cell": { - "columnId": "Procivis One Core", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "SpruceID", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95959, + "_idleStart": 65722, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 307, + "duration": 128, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -34989,78 +41928,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "parent": "o9uF_vhBB6k1vuXsYL5yg", "ctx": null, - "_testId": "urn:uuid:786f8f75-2863-4422-afe3-0b5b028485db", + "_testId": "urn:uuid:1ca38a44-62c7-41dc-8b34-b9807275442a", "cell": { - "columnId": "Procivis One Core", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "columnId": "VC Issuer Mock", + "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96265, + "_idleStart": 66023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 248, "state": "passed", "speed": "slow" } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "a6B7ft2NpzaGPgJ3GnSck", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:ff992d17-b98e-4f0f-abc3-e28f4df28007" + ] }, { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + "id": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "cells": [ { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35070,33 +41970,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:cb3b387d-b1be-444c-b816-716b5e26c2fb", + "_testId": "urn:uuid:6e0e1aa2-3435-477a-8b86-59c4a633d520", "cell": { - "columnId": "SpruceID", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "columnId": "ACA-py", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96388, + "_idleStart": 63603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, + "duration": 82, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35106,11 +42006,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:2277c9ce-727a-4bfe-a90d-da78ed5780d8", + "_testId": "urn:uuid:74fe6e2e-ea6a-4142-be93-3b5170c7df1d", "cell": { - "columnId": "SpruceID", + "columnId": "apicatalog.com", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, @@ -35120,19 +42020,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96462, + "_idleStart": 63912, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 68, - "state": "passed", - "speed": "medium" + "duration": 95, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35142,37 +42046,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:f83e8581-a7a3-4ff8-8271-c7d6e6f7561c", + "_testId": "urn:uuid:92799628-7161-42a5-966d-14e3c644c733", "cell": { - "columnId": "SpruceID", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "columnId": "Digital Bazaar", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96530, + "_idleStart": 64643, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 31, - "state": "passed", - "speed": "fast" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + "duration": 132, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", + "type": "test", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35181,39 +42085,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", - "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", + "ctx": null, + "_testId": "urn:uuid:a5b053dc-edbf-4b25-a6fb-551877e16e18", + "cell": { + "columnId": "OpSecId", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:f2cbf1f6-cdcd-424e-99f0-bc198a352068" - }, - { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 64881, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 68, + "state": "passed", + "speed": "medium" + }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35223,33 +42122,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:b7333971-6be9-4c77-ac56-67a9754c4da8", + "_testId": "urn:uuid:13e5d9e9-9041-485d-be96-cccd3fd3546b", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "columnId": "Procivis One Core", + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96561, + "_idleStart": 65241, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 248, + "duration": 347, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35259,11 +42158,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:3c04aaa5-0329-44a3-99fd-14191d8088ca", + "_testId": "urn:uuid:e479f1ec-f224-457f-9c9f-ba2ccbd00af4", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "SpruceID", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, @@ -35273,19 +42172,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96810, + "_idleStart": 65849, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 321, + "duration": 126, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35295,108 +42194,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "parent": "o9uF_vhBB6k1vuXsYL5yg", "ctx": null, - "_testId": "urn:uuid:47a57484-2d79-4c07-b7de-eb9d27607873", + "_testId": "urn:uuid:00feeb43-6cac-465c-bb84-249781efd826", "cell": { "columnId": "VC Issuer Mock", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97130, + "_idleStart": 66272, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 471, "state": "passed", "speed": "slow" } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "7cB9hpN-ayUGW_oux0YIG", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "zvW-Cx5oCmCtN1QrgjTf-", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "_testId": "urn:uuid:6d03e5eb-5eb1-4de2-b0fc-bf1147cf020e" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:1cb4033e-38cc-4ef9-933a-ef618ff62f17", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ + ] + }, { - "id": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "id": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "cells": [ { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35406,26 +42236,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "parent": "djb-4_CTvWzHm8Ne-uMV8", "ctx": null, - "_testId": "urn:uuid:ce7075d1-97fb-408f-864d-b3ba0f4601ee", + "_testId": "urn:uuid:3438c574-11ae-47e4-a514-38644cebf133", "cell": { "columnId": "ACA-py", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93809, + "_idleStart": 63685, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -35436,7 +42266,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", "method": "POST", "json": { "credential": { @@ -35446,10 +42276,16 @@ "type": [ "VerifiableCredential" ], - "credentialSchema": { - "type": "https://example.org/#ExampleTestSuiteSchema", - "id": "did:example:schemas/1" - }, + "credentialSchema": [ + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/2" + } + ], "credentialSubject": { "id": "did:example:subject" }, @@ -35536,8 +42372,8 @@ }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35547,33 +42383,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "parent": "dKpsfewITvzM5kWjGSA7b", "ctx": null, - "_testId": "urn:uuid:bcef6f47-1eef-43a8-82e6-3228e86b5ab6", + "_testId": "urn:uuid:13ed8f65-5d9c-46c8-a9b5-23a1a31de99a", "cell": { "columnId": "apicatalog.com", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93950, + "_idleStart": 64007, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 517, + "duration": 274, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35583,33 +42419,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "parent": "T2uPQpkYa4Tjz1XNU38dy", "ctx": null, - "_testId": "urn:uuid:59f50a90-de9b-4636-87a2-2fa26e0db20a", + "_testId": "urn:uuid:67868914-6f02-4a7f-a5d6-aba55cebb609", "cell": { "columnId": "Digital Bazaar", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 94860, + "_idleStart": 64775, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 182, + "duration": 82, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35619,33 +42455,142 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "parent": "IjjCkHD8Huh0zdpTRU-Nr", "ctx": null, - "_testId": "urn:uuid:6c83ff80-d164-47bc-8f9a-aca9fd0bbd80", + "_testId": "urn:uuid:aa0c5722-aabb-47ef-8a59-a3db4f8e5975", "cell": { "columnId": "OpSecId", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95238, + "_idleStart": 64950, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 152, - "state": "passed", - "speed": "slow" + "duration": 22, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSchema": [ + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/1" + }, + { + "type": "https://example.org/#ExampleTestSuiteSchema", + "id": "did:example:schemas/2" + } + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35655,33 +42600,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "parent": "q3IeHaWPAY4HDTaFps_2H", "ctx": null, - "_testId": "urn:uuid:afbc8fed-978b-46af-b329-a869c8bd0bd6", + "_testId": "urn:uuid:e4dc0546-2924-48c5-9421-e6dff0216f06", "cell": { "columnId": "Procivis One Core", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95699, + "_idleStart": 65588, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 259, + "duration": 133, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35691,33 +42636,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", + "parent": "s7amcj0CuekkQclnuVPFq", "ctx": null, - "_testId": "urn:uuid:cb3b387d-b1be-444c-b816-716b5e26c2fb", + "_testId": "urn:uuid:b6dbe7ad-1e58-44ea-8d12-18e4edb7514e", "cell": { "columnId": "SpruceID", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96388, + "_idleStart": 65975, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, + "duration": 48, "state": "passed", "speed": "medium" }, { "type": "test", - "title": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).`;\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schema-ok.json')),\n 'Failed to accept a VC containing a valid `credentialSchema`.');\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35727,39 +42672,46 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "parent": "o9uF_vhBB6k1vuXsYL5yg", "ctx": null, - "_testId": "urn:uuid:b7333971-6be9-4c77-ac56-67a9754c4da8", + "_testId": "urn:uuid:01367195-124f-4bdd-94a2-9787d2b1d591", "cell": { "columnId": "VC Issuer Mock", - "rowId": "The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s)." + "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=The%20value%20of%20the%20credentialSchema%20property%20MUST%20be%20one%20or%20more%20data%20schemas%20that%20provide%20verifiers%20with%20enough%20information%20to%20determine%20whether%20the%20provided%20data%20conforms%20to%20the%20provided%20schema(s).", + "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96561, + "_idleStart": 66742, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 248, + "duration": 95, "state": "passed", "speed": "slow" } ] - }, + } + ] + }, + { + "title": "Verifiable Presentations", + "ctx": null, + "suites": [ { - "id": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", - "cells": [ + "title": "ACA-py", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35768,77 +42720,140 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:8659b249-e741-49ac-b503-a020de3168b7", + "_testId": "urn:uuid:cb8de054-0626-48a8-83db-ede6a8537b77", "cell": { "columnId": "ACA-py", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 93838, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 83, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", - "ctx": null, - "_testId": "urn:uuid:0c3a5f31-5ec3-41b6-a7cc-84bcd576e5b5", - "cell": { - "columnId": "apicatalog.com", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 94467, + "_idleStart": 66838, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 193, + "duration": 35, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z55jHfLpyeNxpysgpSFtaaTGmro7zVvivRswYTcimC9PH4vnHoCgh8j2b7PBysvP1YDXFKsGQhTVqX4CQkyyGQPq9\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z55jHfLpyeNxpysgpSFtaaTGmro7zVvivRswYTcimC9PH4vnHoCgh8j2b7PBysvP1YDXFKsGQhTVqX4CQkyyGQPq9" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, - "operator": "rejects" + "operator": "doesNotReject" } }, { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35847,41 +42862,161 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:7d2e2f57-5bf8-4bb4-b808-396ef2460745", + "_testId": "urn:uuid:1a11d5f4-6986-4aeb-9207-d2d8c8a87f90", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "ACA-py", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95042, + "_idleStart": 66872, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 36, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, - "operator": "rejects" + "operator": "doesNotReject" } }, { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35890,34 +43025,185 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:87237fa3-7679-46f8-bde4-1c6d8d1d1559", + "_testId": "urn:uuid:d66d4b4a-2fd7-4b81-bf3d-b2fce946266a", "cell": { - "columnId": "OpSecId", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "ACA-py", + "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95390, + "_idleStart": 66908, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 204, - "state": "passed", - "speed": "slow" - }, + "duration": 36, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + }, + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:other-subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 + }, + "operator": "doesNotReject" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -35926,34 +43212,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "type": "hook", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:4f5d2988-4158-4310-b441-e1b19d69523e", - "cell": { - "columnId": "Procivis One Core", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 95959, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 307, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "TkUMdcnmIQHJ7u4_90tUt", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "_testId": "urn:uuid:4303e8d7-cf18-4803-8c68-6989c6b25d5a" + }, + { + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35962,34 +43253,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:2277c9ce-727a-4bfe-a90d-da78ed5780d8", + "_testId": "urn:uuid:d4cafebf-28ad-4c7f-9e41-0ad5434095ee", "cell": { - "columnId": "SpruceID", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "apicatalog.com", + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96462, + "_idleStart": 66944, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 68, + "duration": 40, "state": "passed", "speed": "medium" }, { "type": "test", - "title": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` without an `id`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-non-url-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -35998,40 +43289,169 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:3c04aaa5-0329-44a3-99fd-14191d8088ca", + "_testId": "urn:uuid:ce0e596e-3d2f-406d-be9f-2f1458a22570", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." + "columnId": "apicatalog.com", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=Each%20credentialSchema%20MUST%20specify%20its%20type%20(for%20example%2C%20JsonSchema)%2C%20and%20an%20id%20property%20that%20MUST%20be%20a%20URL%20identifying%20the%20schema%20file.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96810, + "_idleStart": 66984, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 321, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", - "cells": [ + "duration": 101, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } + }, + "operator": "doesNotReject" + } + }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -36040,27 +43460,27 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "gLH7LkPHZ1mT7zjcYNIwW", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:4493dc78-70b0-4da7-8894-547a910b95d4", + "_testId": "urn:uuid:dd38caec-b7c3-4c37-9c76-e93460b5e0ff", "cell": { - "columnId": "ACA-py", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "columnId": "apicatalog.com", + "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 93922, + "_idleStart": 67085, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 104, "state": "failed", "err": { "generatedMessage": false, @@ -36071,33 +43491,72 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSchema\":[{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/1\"},{\"type\":\"https://example.org/#ExampleTestSuiteSchema\",\"id\":\"did:example:schemas/2\"}],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr\"},\"options\":{\"type\":\"Ed25519Signature2020\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { - "credential": { + "verifiablePresentation": { "@context": [ "https://www.w3.org/ns/credentials/v2" ], "type": [ - "VerifiableCredential" + "VerifiablePresentation" ], - "credentialSchema": [ + "verifiableCredential": [ { - "type": "https://example.org/#ExampleTestSuiteSchema", - "id": "did:example:schemas/1" + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } }, { - "type": "https://example.org/#ExampleTestSuiteSchema", - "id": "did:example:schemas/2" + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:other-subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe" + } } ], - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8" + } }, "options": { - "type": "Ed25519Signature2020" + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -36166,19 +43625,28 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/credentials/issue", + "requestUrl": "https://vc.apicatalog.com/presentations/verify", "status": 400, "data": { - "message": "DID not found: did:key:z6MkmiYjSToh5NdEf9xNuh5mDGXGYinzcAy1s4feRHtkEQJr" + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] } }, "operator": "doesNotReject" } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -36187,34 +43655,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "V4O0mOyUw_0G3SXnFkbM3", + "type": "hook", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:92afef2f-8954-4422-a03c-b03cd302c39f", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 94661, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 200, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "TkUMdcnmIQHJ7u4_90tUt", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "_testId": "urn:uuid:1a683b45-324d-4176-b7eb-5359714ecfcd" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -36223,34 +43696,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "rF6DBMksnJ9eQAlbhtPLY", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:2b544d00-1c8b-4f68-b750-4ca4da8987bf", + "_testId": "urn:uuid:5276c6b9-38a1-4802-819a-fa82a957d45b", "cell": { "columnId": "Digital Bazaar", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95155, + "_idleStart": 67190, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 82, + "duration": 278, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -36259,34 +43732,34 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "RX806TQDg-tNG2bzvKSCc", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:af6a4e06-84b9-43ff-aaf4-c3d930bf5aab", + "_testId": "urn:uuid:d35217e4-c72c-4a5f-b5e6-3c2f4a4019d9", "cell": { - "columnId": "OpSecId", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "columnId": "Digital Bazaar", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 95594, + "_idleStart": 67467, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 72, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -36295,70 +43768,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "a6B7ft2NpzaGPgJ3GnSck", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:786f8f75-2863-4422-afe3-0b5b028485db", + "_testId": "urn:uuid:0dda1ac5-587a-4078-8ba8-6030408d6a0a", "cell": { - "columnId": "Procivis One Core", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" + "columnId": "Digital Bazaar", + "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 96265, + "_idleStart": 67539, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 180, "state": "passed", "speed": "slow" - }, - { - "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "4d0Bk-AaUR7Vt_LCDQ19T", - "ctx": null, - "_testId": "urn:uuid:f83e8581-a7a3-4ff8-8271-c7d6e6f7561c", - "cell": { - "columnId": "SpruceID", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 96530, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 31, - "state": "passed", - "speed": "fast" - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.`;\n // TODO: this doesn't really test the above statement...\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-schemas-ok.json')),\n 'Failed to accept a VC containing multiple valid `credentialSchema`.');\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, "_timeout": 15000, @@ -36367,40 +43808,32 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/411-data-schemas.js", - "parent": "7cB9hpN-ayUGW_oux0YIG", + "type": "hook", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:47a57484-2d79-4c07-b7de-eb9d27607873", - "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property" - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#data-schemas:~:text=If%20multiple%20schemas%20are%20present%2C%20validity%20is%20determined%20according%20to%20the%20processing%20rules%20outlined%20by%20each%20associated%20type%20property.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97130, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 116, - "state": "passed", - "speed": "slow" + "duration": 0, + "_error": null } - ] - } - ] - }, - { - "title": "Verifiable Presentations", - "ctx": null, - "suites": [ + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "TkUMdcnmIQHJ7u4_90tUt", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "_testId": "urn:uuid:1a924f06-bebd-4e8c-89d6-380b760a82b5" + }, { - "title": "ACA-py", + "title": "OpSecId", "ctx": null, "suites": [], "tests": [ @@ -36417,11 +43850,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "np4e6oHPyVBtUNvtDyNaG", "ctx": null, - "_testId": "urn:uuid:6bce86c3-7d2b-41db-a491-edd842621a19", + "_testId": "urn:uuid:cfd168bd-8dcc-418c-a294-2ccc6d9875c5", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -36431,12 +43864,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97247, + "_idleStart": 67719, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 25, "state": "failed", "err": { "generatedMessage": false, @@ -36447,7 +43880,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2iqQP9Rag73fnAxYov9s5yJ99nEcn97pE7Ca8cbEykm3UHo8MXH345KuFVLcETNYtPPbmNGvSqqyWofUjMD9BoNz\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -36460,18 +43893,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2iqQP9Rag73fnAxYov9s5yJ99nEcn97pE7Ca8cbEykm3UHo8MXH345KuFVLcETNYtPPbmNGvSqqyWofUjMD9BoNz" + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -36540,8 +43973,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -36559,11 +43992,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "np4e6oHPyVBtUNvtDyNaG", "ctx": null, - "_testId": "urn:uuid:527f0f57-2688-4956-a6fa-e6edc666d971", + "_testId": "urn:uuid:49e85559-9c5e-48bb-be9c-9b5585f3df58", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -36573,12 +44006,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97280, + "_idleStart": 67744, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -36589,7 +44022,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -36613,28 +44046,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu" + "proofValue": "z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -36703,8 +44136,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -36712,7 +44145,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -36722,11 +44155,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "np4e6oHPyVBtUNvtDyNaG", "ctx": null, - "_testId": "urn:uuid:2b23907c-072e-4b28-9d6b-828ce13c0350", + "_testId": "urn:uuid:52452a73-8db1-4204-b939-7391d6b812b1", "cell": { - "columnId": "ACA-py", + "columnId": "OpSecId", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -36736,12 +44169,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97322, + "_idleStart": 67772, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 40, + "duration": 32, "state": "failed", "err": { "generatedMessage": false, @@ -36752,7 +44185,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -36776,11 +44209,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } }, { @@ -36796,28 +44229,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt" + "proofValue": "z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN" + "proofValue": "z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -36886,8 +44319,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -36898,7 +44331,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"ACA-py\"", + "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -36909,7 +44342,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "np4e6oHPyVBtUNvtDyNaG", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -36928,12 +44361,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", + "parent": "TkUMdcnmIQHJ7u4_90tUt", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:1d0f2226-45b0-445b-b124-61b5c9e3b50d" + "_testId": "urn:uuid:af7b167f-78be-45a4-b0ba-98a1cd5c9252" }, { - "title": "apicatalog.com", + "title": "Procivis One Core", "ctx": null, "suites": [], "tests": [ @@ -36950,11 +44383,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:12f2e270-060d-4524-a466-5439e6d70327", + "_testId": "urn:uuid:e8e99ad0-6e1d-48d6-91e2-803043f0e236", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -36964,14 +44397,131 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97361, + "_idleStart": 67804, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 111, - "state": "passed", - "speed": "slow" + "duration": 117, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:53Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "authentication", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" + } + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -36986,11 +44536,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:722f28bf-e3a4-4367-b61b-3216c61c131b", + "_testId": "urn:uuid:6a2bf2c7-4081-4298-ab43-e6c490712a47", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -37000,12 +44550,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97473, + "_idleStart": 67922, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 120, "state": "failed", "err": { "generatedMessage": false, @@ -37016,7 +44566,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -37040,28 +44590,30 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu" + "proofValue": "z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -37130,15 +44682,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", "status": 400, "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] } }, "operator": "doesNotReject" @@ -37147,7 +44700,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -37157,11 +44710,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:565c6812-b9c3-4d3b-ab18-55d005f6f6bb", + "_testId": "urn:uuid:4c02cda5-ba40-4ef2-b9ce-7e7ad3b6d50e", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -37171,12 +44724,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97576, + "_idleStart": 68043, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 93, + "duration": 122, "state": "failed", "err": { "generatedMessage": false, @@ -37187,7 +44740,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -37211,11 +44764,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } }, { @@ -37231,28 +44784,30 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt" + "proofValue": "z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN" + "proofValue": "z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -37321,15 +44876,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", "status": 400, "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] } }, "operator": "doesNotReject" @@ -37341,313 +44897,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "V-vYXIOaTaIskwECP54PU", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:88e40079-645f-453e-a241-00bb2ce7ebe6" - }, - { - "title": "Digital Bazaar", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", - "ctx": null, - "_testId": "urn:uuid:19e8ece1-3ed4-42bc-bdc1-7615345562c4", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97668, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 298, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", - "ctx": null, - "_testId": "urn:uuid:15e27d08-c2f1-44c3-8c4e-0868c0981533", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97966, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 126, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", - "ctx": null, - "_testId": "urn:uuid:cd65608c-66f5-4e8a-8863-38146815c75e", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98092, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 173, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "57W8CA2ftQcw4LGWKPDcC", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:3671f4b4-1850-4543-810c-3cd48044fd90" - }, - { - "title": "OpSecId", - "ctx": null, - "suites": [], - "tests": [ - { - "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:4903662a-efd9-44f4-b5b4-edc02657cfbe", - "cell": { - "columnId": "OpSecId", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98267, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 29, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:ea20b77b-7525-4e1a-b1d6-c9168832adc0", - "cell": { - "columnId": "OpSecId", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98297, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 80, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:ee4ccc62-e06c-4902-95b8-b04b8b9ce444", - "cell": { - "columnId": "OpSecId", - "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98377, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 229, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"OpSecId\"", + "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -37658,7 +44908,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "AyYqL0rjlPC-sKLLdIxxG", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -37677,12 +44927,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", + "parent": "TkUMdcnmIQHJ7u4_90tUt", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:6a6801b7-e617-4ccc-b37b-afe4f747be35" + "_testId": "urn:uuid:e357ab1b-dbdb-46cf-b4ba-965aeefaf361" }, { - "title": "Procivis One Core", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ @@ -37699,11 +44949,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:ec59d885-9aab-491d-a241-04a49e94f19e", + "_testId": "urn:uuid:6cd4d85f-b019-46b7-acfe-766eb334101b", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -37713,12 +44963,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98606, + "_idleStart": 68164, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 41, "state": "failed", "err": { "generatedMessage": false, @@ -37729,7 +44979,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -37742,20 +44992,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -37824,17 +45072,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } @@ -37852,11 +45091,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:07b3721e-4ff2-4077-9eed-e00847138551", + "_testId": "urn:uuid:5bc2c17f-676d-476b-a4eb-606834332cdd", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -37866,12 +45105,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98708, + "_idleStart": 68205, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 47, "state": "failed", "err": { "generatedMessage": false, @@ -37882,7 +45121,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -37906,30 +45145,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -37998,17 +45235,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } @@ -38016,7 +45244,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -38026,11 +45254,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:add4b6b7-1ca3-4903-9f0d-6d8f01aae967", + "_testId": "urn:uuid:d2433f03-c211-45b3-8c7a-38ec3b610824", "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -38040,12 +45268,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98814, + "_idleStart": 68252, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 51, "state": "failed", "err": { "generatedMessage": false, @@ -38056,7 +45284,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38080,11 +45308,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } }, { @@ -38100,30 +45328,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" + "proofValue": "z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -38192,17 +45418,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } @@ -38213,7 +45430,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Procivis One Core\"", + "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -38224,7 +45441,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "LLZGCuBuglUqiO6FsWt5z", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -38243,12 +45460,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", + "parent": "TkUMdcnmIQHJ7u4_90tUt", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:047e98aa-0d56-429f-a035-f6a1ce9b1740" + "_testId": "urn:uuid:689fc5c9-145d-4a7d-8c69-5632ac65c651" }, { - "title": "SpruceID", + "title": "VC Issuer Mock", "ctx": null, "suites": [], "tests": [ @@ -38265,11 +45482,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:536e29ef-de89-47be-b50c-6ccb80278950", + "_testId": "urn:uuid:73b56023-61b3-4ec7-9721-2095843a650f", "cell": { - "columnId": "SpruceID", + "columnId": "VC Issuer Mock", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -38279,12 +45496,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98922, + "_idleStart": 68304, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 40, + "duration": 118, "state": "failed", "err": { "generatedMessage": false, @@ -38295,7 +45512,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2vuZpU7NjbJjEPe88VMc3H796Th8SsvemPqruazgJQtzevfEqPKUFvVPceXHbAk8dgNEtkxBW79o4ryE2cx9gvdv\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38308,18 +45525,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "z2vuZpU7NjbJjEPe88VMc3H796Th8SsvemPqruazgJQtzevfEqPKUFvVPceXHbAk8dgNEtkxBW79o4ryE2cx9gvdv" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -38388,7 +45605,7 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", "status": 400 }, "operator": "doesNotReject" @@ -38407,11 +45624,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:6d4f27e2-475c-4faf-a1f9-8bf68ea2b591", + "_testId": "urn:uuid:6a6cf587-7574-4d39-9273-23fda719eb8b", "cell": { - "columnId": "SpruceID", + "columnId": "VC Issuer Mock", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -38421,12 +45638,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98963, + "_idleStart": 68422, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 101, "state": "failed", "err": { "generatedMessage": false, @@ -38437,7 +45654,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38461,28 +45678,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -38551,7 +45768,7 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", "status": 400 }, "operator": "doesNotReject" @@ -38560,7 +45777,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -38570,11 +45787,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:3db55b38-7356-4d37-87c7-272ecf131b22", + "_testId": "urn:uuid:e5a9bb08-107b-417b-aaec-6e39c42e047a", "cell": { - "columnId": "SpruceID", + "columnId": "VC Issuer Mock", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -38584,12 +45801,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98992, + "_idleStart": 68524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 37, + "duration": 108, "state": "failed", "err": { "generatedMessage": false, @@ -38600,7 +45817,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38624,11 +45841,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } }, { @@ -38644,28 +45861,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" + "proofValue": "z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -38734,7 +45951,7 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", "status": 400 }, "operator": "doesNotReject" @@ -38746,7 +45963,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", + "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", "async": 0, "sync": true, @@ -38757,7 +45974,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -38776,15 +45993,45 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", + "parent": "TkUMdcnmIQHJ7u4_90tUt", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:9c2004ad-2232-4431-9d4f-cf2a831b62da" - }, + "_testId": "urn:uuid:36102ca4-e14c-426e-9f78-8f5c36290154" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "Em_potGV9x3J1q1WK1tY4", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:3a522b77-529f-4dd5-9c59-3803dc24991f", + "columns": [ + "ACA-py", + "apicatalog.com", + "Digital Bazaar", + "OpSecId", + "Procivis One Core", + "SpruceID", + "VC Issuer Mock" + ], + "rows": [ { - "title": "VC Issuer Mock", - "ctx": null, - "suites": [], - "tests": [ + "id": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "cells": [ { "type": "test", "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", @@ -38798,11 +46045,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:88a81938-3b91-4d8d-889c-da2fe22ce3bf", + "_testId": "urn:uuid:cb8de054-0626-48a8-83db-ede6a8537b77", "cell": { - "columnId": "VC Issuer Mock", + "columnId": "ACA-py", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -38812,12 +46059,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99030, + "_idleStart": 66838, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 126, + "duration": 35, "state": "failed", "err": { "generatedMessage": false, @@ -38828,7 +46075,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z55jHfLpyeNxpysgpSFtaaTGmro7zVvivRswYTcimC9PH4vnHoCgh8j2b7PBysvP1YDXFKsGQhTVqX4CQkyyGQPq9\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38841,18 +46088,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "z55jHfLpyeNxpysgpSFtaaTGmro7zVvivRswYTcimC9PH4vnHoCgh8j2b7PBysvP1YDXFKsGQhTVqX4CQkyyGQPq9" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -38921,16 +46168,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -38940,26 +46187,98 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:659646f2-6e76-468c-ab49-735dec9da826", + "_testId": "urn:uuid:d4cafebf-28ad-4c7f-9e41-0ad5434095ee", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "apicatalog.com", + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99157, + "_idleStart": 66944, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, + "duration": 40, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "-gpvvPhBFLg8v3i3Btd9h", + "ctx": null, + "_testId": "urn:uuid:5276c6b9-38a1-4802-819a-fa82a957d45b", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 67190, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 278, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "np4e6oHPyVBtUNvtDyNaG", + "ctx": null, + "_testId": "urn:uuid:cfd168bd-8dcc-418c-a294-2ccc6d9875c5", + "cell": { + "columnId": "OpSecId", + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 67719, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 25, "state": "failed", "err": { "generatedMessage": false, @@ -38970,7 +46289,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -38980,42 +46299,21 @@ "type": [ "VerifiablePresentation" ], - "verifiableCredential": [ - { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "credentialSubject": { - "id": "did:example:subject" - }, - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" - } - } - ], + "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -39084,16 +46382,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -39103,26 +46401,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:df84d2b0-ca3d-4bf0-b310-442d45aba74b", + "_testId": "urn:uuid:e8e99ad0-6e1d-48d6-91e2-803043f0e236", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." + "columnId": "Procivis One Core", + "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99274, + "_idleStart": 67804, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 128, + "duration": 117, "state": "failed", "err": { "generatedMessage": false, @@ -39133,7 +46431,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -39143,62 +46441,23 @@ "type": [ "VerifiablePresentation" ], - "verifiableCredential": [ - { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "credentialSubject": { - "id": "did:example:subject" - }, - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" - } - }, - { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "credentialSubject": { - "id": "did:example:other-subject" - }, - "proof": { - "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-rdfc-2022", - "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" - } - } - ], + "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -39267,87 +46526,21 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", + "status": 400, + "data": { + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] + } }, "operator": "doesNotReject" } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ - { - "title": "\"before each\" hook: addPerTestMetadata in \"VC Issuer Mock\"", - "body": "function addPerTestMetadata() {\n // append test meta data to the it/test this.\n this.currentTest.cell = {\n columnId: this.currentTest.parent.title,\n rowId: this.currentTest.title\n };\n}", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "k5tGnvov9FMOeLO7mHK9G", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", - "_events": {}, - "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "iWQY2mk5lPvr736FGLphc", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:32f9326b-5598-4e64-96b5-08284fb48b7d" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:68120414-b028-4974-9986-c1d525f58077", - "columns": [ - "ACA-py", - "apicatalog.com", - "Digital Bazaar", - "OpSecId", - "Procivis One Core", - "SpruceID", - "VC Issuer Mock" - ], - "rows": [ - { - "id": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "cells": [ + }, { "type": "test", "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", @@ -39361,11 +46554,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:6bce86c3-7d2b-41db-a491-edd842621a19", + "_testId": "urn:uuid:6cd4d85f-b019-46b7-acfe-766eb334101b", "cell": { - "columnId": "ACA-py", + "columnId": "SpruceID", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -39375,12 +46568,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97247, + "_idleStart": 68164, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 41, "state": "failed", "err": { "generatedMessage": false, @@ -39391,7 +46584,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2iqQP9Rag73fnAxYov9s5yJ99nEcn97pE7Ca8cbEykm3UHo8MXH345KuFVLcETNYtPPbmNGvSqqyWofUjMD9BoNz\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -39404,18 +46597,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2iqQP9Rag73fnAxYov9s5yJ99nEcn97pE7Ca8cbEykm3UHo8MXH345KuFVLcETNYtPPbmNGvSqqyWofUjMD9BoNz" + "proofValue": "z5wzocfp7fqnWeso39CFm9yujjMXZ6ofRouCiyyncM8xeU5HL8onbbBror237zzSdjfXfg2ga6aujt9po4f5voVAH" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -39484,8 +46677,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } @@ -39503,119 +46696,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:12f2e270-060d-4524-a466-5439e6d70327", + "_testId": "urn:uuid:73b56023-61b3-4ec7-9721-2095843a650f", "cell": { - "columnId": "apicatalog.com", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97361, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 111, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", - "ctx": null, - "_testId": "urn:uuid:19e8ece1-3ed4-42bc-bdc1-7615345562c4", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97668, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 298, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:4903662a-efd9-44f4-b5b4-edc02657cfbe", - "cell": { - "columnId": "OpSecId", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98267, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 29, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", - "ctx": null, - "_testId": "urn:uuid:ec59d885-9aab-491d-a241-04a49e94f19e", - "cell": { - "columnId": "Procivis One Core", + "columnId": "VC Issuer Mock", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." }, "_events": {}, @@ -39625,12 +46710,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98606, + "_idleStart": 68304, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 118, "state": "failed", "err": { "generatedMessage": false, @@ -39641,7 +46726,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2vuZpU7NjbJjEPe88VMc3H796Th8SsvemPqruazgJQtzevfEqPKUFvVPceXHbAk8dgNEtkxBW79o4ryE2cx9gvdv\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -39654,20 +46739,18 @@ "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "z2vuZpU7NjbJjEPe88VMc3H796Th8SsvemPqruazgJQtzevfEqPKUFvVPceXHbAk8dgNEtkxBW79o4ryE2cx9gvdv" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -39736,25 +46819,22 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } - }, + } + ] + }, + { + "id": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "cells": [ { "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -39764,26 +46844,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:536e29ef-de89-47be-b50c-6ccb80278950", + "_testId": "urn:uuid:1a11d5f4-6986-4aeb-9207-d2d8c8a87f90", "cell": { - "columnId": "SpruceID", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." + "columnId": "ACA-py", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98922, + "_idleStart": 66872, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 40, + "duration": 36, "state": "failed", "err": { "generatedMessage": false, @@ -39794,7 +46874,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -39804,21 +46884,42 @@ "type": [ "VerifiablePresentation" ], - "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + } + ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -39887,16 +46988,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", - "status": 400 + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, "operator": "doesNotReject" } }, { "type": "test", - "title": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type`;\n // a presentation with a valid id should verify\n const presentationValidId = await createLocalVp({\n presentation: require('./input/presentation-id-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationValidId),\n `Expected verifier ${name} to verify a VP with a valid id.`\n );\n }", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -39906,26 +47007,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:88a81938-3b91-4d8d-889c-da2fe22ce3bf", + "_testId": "urn:uuid:ce0e596e-3d2f-406d-be9f-2f1458a22570", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed." + "columnId": "apicatalog.com", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.4%20Identifiers%20MUST%20be%20followed.,-type", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99030, + "_idleStart": 66984, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 126, + "duration": 101, "state": "failed", "err": { "generatedMessage": false, @@ -39936,7 +47037,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"id\":\"urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008\",\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -39946,21 +47047,42 @@ "type": [ "VerifiablePresentation" ], - "id": "urn:uuid:9c9a36f8-518f-4976-a934-6649502d0008", + "verifiableCredential": [ + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + } + ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z43FnHu8vig9U9tcCeDLKYweBMsH7vndR1piCreomwh4iG1ZALPbNfNhJC7NtXfwAQUuXYLo1dxgqQrZjPxPWyKR2" + "proofValue": "zLxMfiy1AP8tz7SctWVF5DYaTJzYf776Q8xZNduS5evP93KBG4TAR6bH9kfvj8gYcHtRfoys7bRg6QX5FzYJ9G9d" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -40029,18 +47151,20 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } }, "operator": "doesNotReject" } - } - ] - }, - { - "id": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "cells": [ + }, { "type": "test", "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", @@ -40054,11 +47178,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:527f0f57-2688-4956-a6fa-e6edc666d971", + "_testId": "urn:uuid:d35217e4-c72c-4a5f-b5e6-3c2f4a4019d9", "cell": { - "columnId": "ACA-py", + "columnId": "Digital Bazaar", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -40068,12 +47192,48 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97280, + "_idleStart": 67467, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 41, + "duration": 72, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "np4e6oHPyVBtUNvtDyNaG", + "ctx": null, + "_testId": "urn:uuid:49e85559-9c5e-48bb-be9c-9b5585f3df58", + "cell": { + "columnId": "OpSecId", + "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 67744, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 28, "state": "failed", "err": { "generatedMessage": false, @@ -40084,7 +47244,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -40108,28 +47268,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu" + "proofValue": "z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -40198,8 +47358,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -40217,11 +47377,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:722f28bf-e3a4-4367-b61b-3216c61c131b", + "_testId": "urn:uuid:6a2bf2c7-4081-4298-ab43-e6c490712a47", "cell": { - "columnId": "apicatalog.com", + "columnId": "Procivis One Core", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -40231,12 +47391,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97473, + "_idleStart": 67922, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 120, "state": "failed", "err": { "generatedMessage": false, @@ -40247,7 +47407,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -40271,28 +47431,30 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "zCeoLhVWymwfgLN6PPqq3vhx2QdyJxuBBFDDRHFTetoH6tLLAffJZVWme8iyf3LtqrtJ7mobETqESiWzr1GscWiu" + "proofValue": "z5KZyDddR8t5kE84kbZPp5RLnPLYEAYVb7a8KHY7aSjxx3bGKmcFkEgFV6DrMQcvJHYcJ3aVCPrmnVqibMjagL6NJ" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg", + "credentialFormat": "JSON_LD_CLASSIC", + "checks": [] } }, "agent": { @@ -40361,15 +47523,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", "status": 400, "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] + "errors": [ + { + "status": 400, + "title": "Failed to deserialize the JSON body into the target type", + "detail": null + } + ] } }, "operator": "doesNotReject" @@ -40388,83 +47551,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:15e27d08-c2f1-44c3-8c4e-0868c0981533", + "_testId": "urn:uuid:5bc2c17f-676d-476b-a4eb-606834332cdd", "cell": { - "columnId": "Digital Bazaar", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 97966, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 126, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:ea20b77b-7525-4e1a-b1d6-c9168832adc0", - "cell": { - "columnId": "OpSecId", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98297, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 80, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", - "ctx": null, - "_testId": "urn:uuid:07b3721e-4ff2-4077-9eed-e00847138551", - "cell": { - "columnId": "Procivis One Core", + "columnId": "SpruceID", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -40474,12 +47565,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98708, + "_idleStart": 68205, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 47, "state": "failed", "err": { "generatedMessage": false, @@ -40490,7 +47581,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -40514,30 +47605,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", - "credentialFormat": "JSON_LD_CLASSIC", - "checks": [] + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -40606,17 +47695,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://core.test.procivis-one.com/vc-api/presentations/verify", - "status": 400, - "data": { - "errors": [ - { - "status": 400, - "title": "Failed to deserialize the JSON body into the target type", - "detail": null - } - ] - } + "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "status": 400 }, "operator": "doesNotReject" } @@ -40634,11 +47714,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:6d4f27e2-475c-4faf-a1f9-8bf68ea2b591", + "_testId": "urn:uuid:6a6cf587-7574-4d39-9273-23fda719eb8b", "cell": { - "columnId": "SpruceID", + "columnId": "VC Issuer Mock", "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." }, "_events": {}, @@ -40648,12 +47728,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98963, + "_idleStart": 68422, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 101, "state": "failed", "err": { "generatedMessage": false, @@ -40664,7 +47744,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -40688,28 +47768,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z4fuSyPSDe1ViyPHNNMrGxBkpsXcNtiBW4sxtG85SdWRUfBQbPRzhrGgPZEX1ZFryJghYtcU51cDrdxueAeo4K275" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -40778,16 +47858,22 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/presentations/verify", + "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", "status": 400 }, "operator": "doesNotReject" } - }, + } + ] + }, + { + "id": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", + "cells": [ { "type": "test", - "title": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.`;\n const presentationWithType = await createLocalVp({\n presentation: require('./input/presentation-vc-ok.json')\n });\n await assert.doesNotReject(\n endpoints.verifyVp(presentationWithType),\n `Expected verifier ${name} to verify a VP with initial ` +\n `type VerifiablePresentation.`\n );\n }", + "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -40797,26 +47883,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "jZcJemnxbBhugWKx1M4LI", "ctx": null, - "_testId": "urn:uuid:659646f2-6e76-468c-ab49-735dec9da826", + "_testId": "urn:uuid:d66d4b4a-2fd7-4b81-bf3d-b2fce946266a", "cell": { - "columnId": "VC Issuer Mock", - "rowId": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed." + "columnId": "ACA-py", + "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99157, + "_idleStart": 66908, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, + "duration": 36, "state": "failed", "err": { "generatedMessage": false, @@ -40827,7 +47913,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -40851,28 +47937,48 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" + } + }, + { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "issuer": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "credentialSubject": { + "id": "did:example:other-subject" + }, + "proof": { + "type": "DataIntegrityProof", + "created": "2024-10-20T05:06:52Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z5x9H7zAMinJMN4ictRG7CLNRvYGzc81A8sstWx7SQ1eSvrjPF7G1L9VjVZvKugRLfciDrd2a8Uv5nWXF1Yr42PdD" + "proofValue": "z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -40941,22 +48047,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc-issuer-mock.onrender.com/didkit-http/presentations/verify", - "status": 400 + "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", + "status": 500 }, "operator": "doesNotReject" } - } - ] - }, - { - "id": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", - "cells": [ + }, { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -40966,11 +48066,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "_7Gylpcs0sqfCzQKnjK9A", + "parent": "BwCJpzApuWYe7jdvsg_gF", "ctx": null, - "_testId": "urn:uuid:2b23907c-072e-4b28-9d6b-828ce13c0350", + "_testId": "urn:uuid:dd38caec-b7c3-4c37-9c76-e93460b5e0ff", "cell": { - "columnId": "ACA-py", + "columnId": "apicatalog.com", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -40980,12 +48080,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97322, + "_idleStart": 67085, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 40, + "duration": 104, "state": "failed", "err": { "generatedMessage": false, @@ -40996,7 +48096,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:52Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -41020,11 +48120,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "z3vP1766Vf3nLeifszsgfo18GvDHpV8MyJsshebf3QLH8AbAczmxKvevEJsdUUhgEC8UmAVntfuJ5CiMnriWoNYMN" } }, { @@ -41040,28 +48140,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt" + "proofValue": "zf4uiakwS3DycHsozXz7CEmYDy6aNS6LeCzuL8BGkkqFSjc9Bbtb3QVB2TRpaVqDqdFWiFCUKywEjLVu7CMGAnEe" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:52Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN" + "proofValue": "z38s8HUZEKaoHJ1QrXhdgWzoMfLcb7wkoMFrYwFwZgHzMMbwgAWuEhT72nsw9zaMBE8MayRwfUnL58Euo4qA2GeZ8" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -41130,8 +48230,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://aca-py.test-suite.app/vc/presentations/verify", - "status": 500 + "requestUrl": "https://vc.apicatalog.com/presentations/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } }, "operator": "doesNotReject" } @@ -41139,7 +48247,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -41149,11 +48257,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "V-vYXIOaTaIskwECP54PU", + "parent": "-gpvvPhBFLg8v3i3Btd9h", "ctx": null, - "_testId": "urn:uuid:565c6812-b9c3-4d3b-ab18-55d005f6f6bb", + "_testId": "urn:uuid:0dda1ac5-587a-4078-8ba8-6030408d6a0a", "cell": { - "columnId": "apicatalog.com", + "columnId": "Digital Bazaar", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." }, "_events": {}, @@ -41163,12 +48271,48 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 97576, + "_idleStart": 67539, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 93, + "duration": 180, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", + "parent": "np4e6oHPyVBtUNvtDyNaG", + "ctx": null, + "_testId": "urn:uuid:52452a73-8db1-4204-b939-7391d6b812b1", + "cell": { + "columnId": "OpSecId", + "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 67772, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 32, "state": "failed", "err": { "generatedMessage": false, @@ -41179,7 +48323,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:02Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -41203,11 +48347,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z29NtpQZiqgo6mS3zBnrQs4PJGTVhvtVyReokbF9qvQf1jKgaEnYQLooF7hubZpUeRBaGaTpKwq47GnxqsSRhZc6s" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } }, { @@ -41223,28 +48367,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4onnFGvC5WFQgG8a6aEwtoeMevwPaRSz1wz3VSxdCz9tBvFqHnffYGz1f1xKPiuVZhWaxgfquQzYxqektLHpqAJt" + "proofValue": "z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:02Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z2UkE6P58YeAtpciVkc2KmMnuoacuvkfs3JziPdCabNf2dWRqwz6qTyd5MeyR22jykQpC1csDTsjYW9ucLZtxoekN" + "proofValue": "z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -41313,16 +48457,8 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/presentations/verify", - "status": 400, - "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] - } + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 }, "operator": "doesNotReject" } @@ -41330,7 +48466,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -41340,81 +48476,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "57W8CA2ftQcw4LGWKPDcC", + "parent": "tYD0P_yxZlCYw_jMYr6-H", "ctx": null, - "_testId": "urn:uuid:cd65608c-66f5-4e8a-8863-38146815c75e", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98092, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 173, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "AyYqL0rjlPC-sKLLdIxxG", - "ctx": null, - "_testId": "urn:uuid:ee4ccc62-e06c-4902-95b8-b04b8b9ce444", - "cell": { - "columnId": "OpSecId", - "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." - }, - "_events": {}, - "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 98377, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 229, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "LLZGCuBuglUqiO6FsWt5z", - "ctx": null, - "_testId": "urn:uuid:add4b6b7-1ca3-4903-9f0d-6d8f01aae967", + "_testId": "urn:uuid:4c02cda5-ba40-4ef2-b9ce-7e7ad3b6d50e", "cell": { "columnId": "Procivis One Core", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -41426,12 +48490,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98814, + "_idleStart": 68043, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 122, "state": "failed", "err": { "generatedMessage": false, @@ -41442,7 +48506,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:53Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"credentialFormat\":\"JSON_LD_CLASSIC\",\"checks\":[]}}", "method": "POST", "json": { "verifiablePresentation": { @@ -41466,11 +48530,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "zWukD4FoHs6UKqhenNEDrzjZyotLWg8rggH5nhXJB4tuUgCadheH8XChAxn7okoq2nsg3eryRxECzSFnYeTnXifb" } }, { @@ -41486,28 +48550,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" + "proofValue": "z3pVpcjZVUCX1Dfdhdkn5T62tWu4obffTeL9duJCRLQ8HUZM327g8uMTEffexNdP4Fos4xpgjhG24UWpoSzpaAuK7" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:53Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "z2GsXHw9bNjFLT7E9FKwrXEedGUv28wF5YvXUcFacmb6o8gK39nPtvnvqoX6tRUxY5AEyvvSe1qYkBmj4Qunp5M5" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "credentialFormat": "JSON_LD_CLASSIC", "checks": [] } @@ -41596,7 +48660,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -41606,9 +48670,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "hRFoAO0-cO3UerueWmOX2", + "parent": "emkfbIGQbGQZRvL-4yeN8", "ctx": null, - "_testId": "urn:uuid:3db55b38-7356-4d37-87c7-272ecf131b22", + "_testId": "urn:uuid:d2433f03-c211-45b3-8c7a-38ec3b610824", "cell": { "columnId": "SpruceID", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -41620,12 +48684,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 98992, + "_idleStart": 68252, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 37, + "duration": 51, "state": "failed", "err": { "generatedMessage": false, @@ -41636,7 +48700,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -41660,11 +48724,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } }, { @@ -41680,28 +48744,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" + "proofValue": "z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -41779,7 +48843,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n // TODO: Test with remote presentation creation or querying if/when\n // supported by the implementation\n const presentationWithCredentials = await createLocalVp({\n presentation: require('./input/presentation-multiple-vc-ok.json')\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationWithCredentials\n ), 'Failed to verify a valid VP.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-as-string-fail.json')),\n 'Failed to reject a VP containing a VC represented as a string.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -41789,9 +48853,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "k5tGnvov9FMOeLO7mHK9G", + "parent": "QeTWLKN_y2TcZ9ouW82Uf", "ctx": null, - "_testId": "urn:uuid:df84d2b0-ca3d-4bf0-b310-442d45aba74b", + "_testId": "urn:uuid:e5a9bb08-107b-417b-aaec-6e39c42e047a", "cell": { "columnId": "VC Issuer Mock", "rowId": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -41803,12 +48867,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99274, + "_idleStart": 68524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 128, + "duration": 108, "state": "failed", "err": { "generatedMessage": false, @@ -41819,7 +48883,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-13T05:08:04Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\"}}", + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT\"}},{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"credentialSubject\":{\"id\":\"did:example:other-subject\"},\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-10-20T05:06:54Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-rdfc-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"proofValue\":\"zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T\"}},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -41843,11 +48907,11 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z4bRpSqyrC1gdKu6AmbzWRJR2JHGyrrsorEao5H1xWWibixptnRpHk8ECLSeJzqPdWW1hd6obW81VUStXNRfHugrS" + "proofValue": "z46y4ksiXdY6hRqR3RE5D9NrRiYrKsoBD6kvwgCChwaySVF4E71Fp6qyVxzQz457GzbqVe3KpKf7Wn3dHUvJq7vdT" } }, { @@ -41863,28 +48927,28 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "assertionMethod", - "proofValue": "z273KoF1ygsLvVZHUxKWxP4KoUCi4hyRr2UuT6cVLwiaaBqpyKp9FZj3Sm47ZDbGk9kBH2jy3xDpJbXVbcbCXMG5X" + "proofValue": "z2pMje2smBf9vDUqXRf1ef8upqyWdrN8gQnhh3pWJv71oxEdNbRPTWVG4sYg3TBd6iie9B3rT6ULnybaWvTdwrdoA" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-10-13T05:08:04Z", + "created": "2024-10-20T05:06:54Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-rdfc-2022", "proofPurpose": "authentication", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "proofValue": "z4pWsVJzqShPNaMrULAaqQxDQUdFhZBsmDdHKAPeDFhiCWMzMbCua9JZPtEMMTsQoSoGDuWEZxXNjpKCwozgZ9m5M" + "proofValue": "zTo65SMcWxutFBhQd34H5D1oAfwiYLkgbid5RRbPGtp371gAXUZT1oMZS5263gm5BGchHBrgNVASXFi4rLYPMT6T" } }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ" + "challenge": "u7OwR297KaMK25xiGBHLmOg" } }, "agent": { @@ -41985,9 +49049,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "O7-cldYAKpvqxG4f2R0Zu", + "parent": "n6SM4c2nPRvZjBG22DvWy", "ctx": null, - "_testId": "urn:uuid:383cd603-85e1-47d3-9537-a4084e17e6db", + "_testId": "urn:uuid:09314c99-b35f-43c8-831e-033dcb0f5ec3", "cell": { "columnId": "ACA-py", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42000,7 +49064,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99402, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42024,9 +49088,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "O7-cldYAKpvqxG4f2R0Zu", + "parent": "n6SM4c2nPRvZjBG22DvWy", "ctx": null, - "_testId": "urn:uuid:ff9db5b1-aa3f-4696-9c81-d34d227ee1e1", + "_testId": "urn:uuid:1c5e3c8d-1e2c-464a-8cd0-2cc577987841", "cell": { "columnId": "ACA-py", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42039,7 +49103,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42067,7 +49131,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "O7-cldYAKpvqxG4f2R0Zu", + "parent": "n6SM4c2nPRvZjBG22DvWy", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42086,9 +49150,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:32e14e4a-cb54-4151-b590-06df06d43e76" + "_testId": "urn:uuid:c5c33dd1-eb61-422a-9a7e-8d812df3432e" }, { "title": "apicatalog.com", @@ -42108,9 +49172,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "stKJm5S922YlCuUvhjBhr", + "parent": "oFqlZOqvjaKerYokzTWWi", "ctx": null, - "_testId": "urn:uuid:1d812d25-e567-4467-987c-6d97fff88d20", + "_testId": "urn:uuid:30ccd40c-4ec6-41b3-9290-cf88168ba6d1", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42123,7 +49187,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42147,9 +49211,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "stKJm5S922YlCuUvhjBhr", + "parent": "oFqlZOqvjaKerYokzTWWi", "ctx": null, - "_testId": "urn:uuid:8b1b5479-f99f-47d7-902e-b3726b2a8056", + "_testId": "urn:uuid:87d3b40b-74d6-4488-a746-1746491302f1", "cell": { "columnId": "apicatalog.com", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42162,7 +49226,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42190,7 +49254,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "stKJm5S922YlCuUvhjBhr", + "parent": "oFqlZOqvjaKerYokzTWWi", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42209,9 +49273,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:a4918cda-acd8-428c-98b1-9f69474eb95a" + "_testId": "urn:uuid:1f905722-98fa-45e9-b77f-c6c1c24ab462" }, { "title": "Digital Bazaar", @@ -42231,9 +49295,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "xu4WIZrzKzZUmhfmkWC5K", + "parent": "NeVUU6mSLtEK8y_Gua2td", "ctx": null, - "_testId": "urn:uuid:92d4b6c9-db00-4b91-81da-38e6fb0df155", + "_testId": "urn:uuid:f700a590-58bb-4c81-b9d2-a1a2cae5ee68", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42246,7 +49310,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42270,9 +49334,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "xu4WIZrzKzZUmhfmkWC5K", + "parent": "NeVUU6mSLtEK8y_Gua2td", "ctx": null, - "_testId": "urn:uuid:d7ce190d-f577-49be-8b0b-c5b6c318ec2e", + "_testId": "urn:uuid:d6c775fb-3f0d-41dd-8ff8-b9105e96d523", "cell": { "columnId": "Digital Bazaar", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42285,7 +49349,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42313,7 +49377,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "xu4WIZrzKzZUmhfmkWC5K", + "parent": "NeVUU6mSLtEK8y_Gua2td", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42332,9 +49396,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:b84f31e6-e2fe-4ecd-b14a-ea8174ecd2de" + "_testId": "urn:uuid:a8351fde-42d0-4b72-b672-e19c5ee73e64" }, { "title": "OpSecId", @@ -42354,9 +49418,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "H10Z4kMkyjTDSqzFLm-9c", + "parent": "2zr54g3_JPLrLnUAI067R", "ctx": null, - "_testId": "urn:uuid:609b0c9a-7b25-41c8-baa2-407544d1db0c", + "_testId": "urn:uuid:3c1bbbf5-8938-4540-a517-100ff5854425", "cell": { "columnId": "OpSecId", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42369,7 +49433,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42393,9 +49457,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "H10Z4kMkyjTDSqzFLm-9c", + "parent": "2zr54g3_JPLrLnUAI067R", "ctx": null, - "_testId": "urn:uuid:ed64ab8a-3d27-43e1-a9d8-bcf82813e3e0", + "_testId": "urn:uuid:dc61ce74-feaa-42ed-a418-2a5f6e8609a2", "cell": { "columnId": "OpSecId", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42408,7 +49472,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42436,7 +49500,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "H10Z4kMkyjTDSqzFLm-9c", + "parent": "2zr54g3_JPLrLnUAI067R", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42455,9 +49519,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:56e01b87-4566-4a71-8327-1669e6024805" + "_testId": "urn:uuid:44601537-3e8a-4f8e-8531-3adfd1c6d155" }, { "title": "Procivis One Core", @@ -42477,9 +49541,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "B8Vf55kD3Ro76-MGUaHd0", + "parent": "I98Jd3T9MTekPiWBIj3U9", "ctx": null, - "_testId": "urn:uuid:a10bba69-2878-4618-9a07-ee63dfd1e5cd", + "_testId": "urn:uuid:82b93aee-decf-4ddc-b52b-e5a1cf5e7364", "cell": { "columnId": "Procivis One Core", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42492,7 +49556,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42516,9 +49580,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "B8Vf55kD3Ro76-MGUaHd0", + "parent": "I98Jd3T9MTekPiWBIj3U9", "ctx": null, - "_testId": "urn:uuid:40989fbf-6c5b-4a17-8d4f-14e5b22ab384", + "_testId": "urn:uuid:d7c41ebb-7799-4285-967b-b8cd7b6364fc", "cell": { "columnId": "Procivis One Core", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42531,7 +49595,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42559,7 +49623,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "B8Vf55kD3Ro76-MGUaHd0", + "parent": "I98Jd3T9MTekPiWBIj3U9", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42578,9 +49642,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:123786d7-007d-49fb-856d-292a4d1e0f0e" + "_testId": "urn:uuid:97b37725-3d2a-46f5-bedb-45c889afb7d5" }, { "title": "SpruceID", @@ -42600,9 +49664,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "bnZa-_sVwVIe2aX36n_ZS", + "parent": "F-q9SVzY9MdxYTEijYl65", "ctx": null, - "_testId": "urn:uuid:3028681c-40ec-4583-99cb-06927947e64a", + "_testId": "urn:uuid:b1a4edb9-34be-4779-8600-6973c6a18a61", "cell": { "columnId": "SpruceID", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42615,7 +49679,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42639,9 +49703,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "bnZa-_sVwVIe2aX36n_ZS", + "parent": "F-q9SVzY9MdxYTEijYl65", "ctx": null, - "_testId": "urn:uuid:90852b65-5619-4ce2-8b59-32869ace7c02", + "_testId": "urn:uuid:74ea3346-e3f0-4e54-b661-bd5253dc4688", "cell": { "columnId": "SpruceID", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42654,7 +49718,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42682,7 +49746,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "bnZa-_sVwVIe2aX36n_ZS", + "parent": "F-q9SVzY9MdxYTEijYl65", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42701,9 +49765,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:b26cb1b4-1b41-4d49-8973-2ce9e7429eb3" + "_testId": "urn:uuid:3bbfbcbc-0b26-4acc-bc2d-6141c7aa62a5" }, { "title": "VC Issuer Mock", @@ -42723,9 +49787,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "5eQVAy4ih1Ali4BhriBEz", + "parent": "hjEGCuKG0JCkjbYtJd7aH", "ctx": null, - "_testId": "urn:uuid:a4979fb4-83d1-441a-beb2-76375e2fbaa8", + "_testId": "urn:uuid:5cc311a0-fd54-4bb2-8e5c-b4afa934b1ba", "cell": { "columnId": "VC Issuer Mock", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42738,7 +49802,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42762,9 +49826,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "5eQVAy4ih1Ali4BhriBEz", + "parent": "hjEGCuKG0JCkjbYtJd7aH", "ctx": null, - "_testId": "urn:uuid:9c2833e5-bb89-49f8-abc4-9727db13cab0", + "_testId": "urn:uuid:fb933757-a9ec-46be-910c-29c0a0f67ab9", "cell": { "columnId": "VC Issuer Mock", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -42777,7 +49841,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42805,7 +49869,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "5eQVAy4ih1Ali4BhriBEz", + "parent": "hjEGCuKG0JCkjbYtJd7aH", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -42824,9 +49888,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "0AtkiLASEzP5_GXFJ5ksT", + "parent": "YAtQI6YJLuWHSa_uXmsPd", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "_testId": "urn:uuid:f62f4bac-ccfb-4bdb-bacf-776c954e97b6" + "_testId": "urn:uuid:ab72fe25-a327-4e60-a132-aafca345d12c" } ], "root": false, @@ -42842,13 +49906,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:47aa7e9b-98e9-44b2-978d-f9276eb09bd4", + "_testId": "urn:uuid:351f65b4-e7cf-4013-a534-8f7b855dab9e", "columns": [ "ACA-py", "apicatalog.com", @@ -42876,9 +49940,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "O7-cldYAKpvqxG4f2R0Zu", + "parent": "n6SM4c2nPRvZjBG22DvWy", "ctx": null, - "_testId": "urn:uuid:383cd603-85e1-47d3-9537-a4084e17e6db", + "_testId": "urn:uuid:09314c99-b35f-43c8-831e-033dcb0f5ec3", "cell": { "columnId": "ACA-py", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42891,7 +49955,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99402, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42915,9 +49979,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "stKJm5S922YlCuUvhjBhr", + "parent": "oFqlZOqvjaKerYokzTWWi", "ctx": null, - "_testId": "urn:uuid:1d812d25-e567-4467-987c-6d97fff88d20", + "_testId": "urn:uuid:30ccd40c-4ec6-41b3-9290-cf88168ba6d1", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42930,7 +49994,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42954,9 +50018,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "xu4WIZrzKzZUmhfmkWC5K", + "parent": "NeVUU6mSLtEK8y_Gua2td", "ctx": null, - "_testId": "urn:uuid:92d4b6c9-db00-4b91-81da-38e6fb0df155", + "_testId": "urn:uuid:f700a590-58bb-4c81-b9d2-a1a2cae5ee68", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -42969,7 +50033,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -42993,9 +50057,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "H10Z4kMkyjTDSqzFLm-9c", + "parent": "2zr54g3_JPLrLnUAI067R", "ctx": null, - "_testId": "urn:uuid:609b0c9a-7b25-41c8-baa2-407544d1db0c", + "_testId": "urn:uuid:3c1bbbf5-8938-4540-a517-100ff5854425", "cell": { "columnId": "OpSecId", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -43008,7 +50072,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43032,9 +50096,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "B8Vf55kD3Ro76-MGUaHd0", + "parent": "I98Jd3T9MTekPiWBIj3U9", "ctx": null, - "_testId": "urn:uuid:a10bba69-2878-4618-9a07-ee63dfd1e5cd", + "_testId": "urn:uuid:82b93aee-decf-4ddc-b52b-e5a1cf5e7364", "cell": { "columnId": "Procivis One Core", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -43047,7 +50111,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43071,9 +50135,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "bnZa-_sVwVIe2aX36n_ZS", + "parent": "F-q9SVzY9MdxYTEijYl65", "ctx": null, - "_testId": "urn:uuid:3028681c-40ec-4583-99cb-06927947e64a", + "_testId": "urn:uuid:b1a4edb9-34be-4779-8600-6973c6a18a61", "cell": { "columnId": "SpruceID", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -43086,7 +50150,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43110,9 +50174,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "5eQVAy4ih1Ali4BhriBEz", + "parent": "hjEGCuKG0JCkjbYtJd7aH", "ctx": null, - "_testId": "urn:uuid:a4979fb4-83d1-441a-beb2-76375e2fbaa8", + "_testId": "urn:uuid:5cc311a0-fd54-4bb2-8e5c-b4afa934b1ba", "cell": { "columnId": "VC Issuer Mock", "rowId": "A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property.", @@ -43125,7 +50189,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43155,9 +50219,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "O7-cldYAKpvqxG4f2R0Zu", + "parent": "n6SM4c2nPRvZjBG22DvWy", "ctx": null, - "_testId": "urn:uuid:ff9db5b1-aa3f-4696-9c81-d34d227ee1e1", + "_testId": "urn:uuid:1c5e3c8d-1e2c-464a-8cd0-2cc577987841", "cell": { "columnId": "ACA-py", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43170,7 +50234,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43194,9 +50258,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "stKJm5S922YlCuUvhjBhr", + "parent": "oFqlZOqvjaKerYokzTWWi", "ctx": null, - "_testId": "urn:uuid:8b1b5479-f99f-47d7-902e-b3726b2a8056", + "_testId": "urn:uuid:87d3b40b-74d6-4488-a746-1746491302f1", "cell": { "columnId": "apicatalog.com", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43209,7 +50273,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43233,9 +50297,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "xu4WIZrzKzZUmhfmkWC5K", + "parent": "NeVUU6mSLtEK8y_Gua2td", "ctx": null, - "_testId": "urn:uuid:d7ce190d-f577-49be-8b0b-c5b6c318ec2e", + "_testId": "urn:uuid:d6c775fb-3f0d-41dd-8ff8-b9105e96d523", "cell": { "columnId": "Digital Bazaar", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43248,7 +50312,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43272,9 +50336,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "H10Z4kMkyjTDSqzFLm-9c", + "parent": "2zr54g3_JPLrLnUAI067R", "ctx": null, - "_testId": "urn:uuid:ed64ab8a-3d27-43e1-a9d8-bcf82813e3e0", + "_testId": "urn:uuid:dc61ce74-feaa-42ed-a418-2a5f6e8609a2", "cell": { "columnId": "OpSecId", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43287,7 +50351,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99403, + "_idleStart": 68633, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43311,9 +50375,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "B8Vf55kD3Ro76-MGUaHd0", + "parent": "I98Jd3T9MTekPiWBIj3U9", "ctx": null, - "_testId": "urn:uuid:40989fbf-6c5b-4a17-8d4f-14e5b22ab384", + "_testId": "urn:uuid:d7c41ebb-7799-4285-967b-b8cd7b6364fc", "cell": { "columnId": "Procivis One Core", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43326,7 +50390,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43350,9 +50414,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "bnZa-_sVwVIe2aX36n_ZS", + "parent": "F-q9SVzY9MdxYTEijYl65", "ctx": null, - "_testId": "urn:uuid:90852b65-5619-4ce2-8b59-32869ace7c02", + "_testId": "urn:uuid:74ea3346-e3f0-4e54-b661-bd5253dc4688", "cell": { "columnId": "SpruceID", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43365,7 +50429,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43389,9 +50453,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413-verifiable-presentations.js", - "parent": "5eQVAy4ih1Ali4BhriBEz", + "parent": "hjEGCuKG0JCkjbYtJd7aH", "ctx": null, - "_testId": "urn:uuid:9c2833e5-bb89-49f8-abc4-9727db13cab0", + "_testId": "urn:uuid:fb933757-a9ec-46be-910c-29c0a0f67ab9", "cell": { "columnId": "VC Issuer Mock", "rowId": "When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation.", @@ -43404,7 +50468,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43441,9 +50505,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:1b00f0ae-2536-4dae-afc9-143d378d403f", + "_testId": "urn:uuid:fe4602fb-f137-44ea-a221-cba924531995", "cell": { "columnId": "ACA-py", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -43456,7 +50520,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43480,9 +50544,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:e3b49d00-3051-46da-ab59-0a73232cba28", + "_testId": "urn:uuid:97c585cf-e946-4240-8f03-59d181ad8f24", "cell": { "columnId": "ACA-py", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -43495,7 +50559,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43519,9 +50583,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:aba4dd80-2ba1-45cb-9763-4fa7957c62d0", + "_testId": "urn:uuid:9c227c98-ea58-4c0f-b782-950a23922e16", "cell": { "columnId": "ACA-py", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -43534,7 +50598,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43562,7 +50626,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -43585,7 +50649,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -43595,7 +50659,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99404, + "_idleStart": 68634, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43612,9 +50676,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:8d08e819-05d4-421a-8938-605f1b64e4e1" + "_testId": "urn:uuid:7598ce54-e292-43ce-8a57-06021b79ea70" }, { "title": "apicatalog.com", @@ -43634,9 +50698,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:6dfcea01-d360-4829-b3f7-fe3071711f40", + "_testId": "urn:uuid:97794c0f-e54c-4d9a-98c8-3ec8e2b89053", "cell": { "columnId": "apicatalog.com", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -43649,7 +50713,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43673,9 +50737,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:585a060a-6d5b-41eb-bdec-2778718b90ba", + "_testId": "urn:uuid:9ab5ffdd-ba5d-4435-b0b1-1b48db339158", "cell": { "columnId": "apicatalog.com", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -43688,7 +50752,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43712,9 +50776,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:17de9db2-d297-4603-b2d6-fccf8cda2f66", + "_testId": "urn:uuid:9c602e18-a48d-4728-891e-60a924fee468", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -43727,7 +50791,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43755,7 +50819,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -43778,7 +50842,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -43788,7 +50852,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -43805,9 +50869,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:45ebd08e-fc80-40a7-9f8c-55db920aec82" + "_testId": "urn:uuid:f7664476-3584-4eaf-88d0-d02696fada47" }, { "title": "Digital Bazaar", @@ -43827,9 +50891,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:65583147-f4b6-40db-b051-74d071cdd699", + "_testId": "urn:uuid:47cad88a-4bea-45aa-8e5c-5e72aad196cf", "cell": { "columnId": "Digital Bazaar", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification." @@ -43841,12 +50905,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99406, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 48, + "duration": 51, "state": "failed", "err": { "generatedMessage": false, @@ -43876,7 +50940,7 @@ }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "checks": [ "proof" ] @@ -43946,7 +51010,7 @@ "timeout": 10000, "signal": {}, "duplex": "half", - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"checks\":[\"proof\"]}}" + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"checks\":[\"proof\"]}}" }, "name": "HTTPError", "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19w7KofwvE2nkJeRVLp8NDxz/presentations/verify", @@ -44021,9 +51085,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:a7412699-d215-49a5-933a-4f25ba2373fe", + "_testId": "urn:uuid:57a38c61-deb2-40cb-abc9-edc611947d0b", "cell": { "columnId": "Digital Bazaar", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -44036,7 +51100,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99453, + "_idleStart": 68686, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44060,9 +51124,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:54133752-c1bf-4c9c-bb22-ff65cb4c3691", + "_testId": "urn:uuid:3aecf1aa-0184-4dfb-9c75-c11430b185c1", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -44075,7 +51139,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99453, + "_idleStart": 68686, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44103,7 +51167,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -44126,7 +51190,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -44136,7 +51200,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44153,9 +51217,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:e6eb6878-f6dd-4cf4-86d8-7a9172d0ed59" + "_testId": "urn:uuid:2b8853a1-7e66-453c-99ed-ab6ec429088c" }, { "title": "OpSecId", @@ -44175,9 +51239,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:aef64fff-fb63-48af-b622-4ada5493761e", + "_testId": "urn:uuid:2e68789e-1219-4033-8568-88a8ca3b6afe", "cell": { "columnId": "OpSecId", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification." @@ -44189,14 +51253,116 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99454, + "_idleStart": 68687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": "https://www.w3.org/ns/credentials/v2", + "id": "data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ", + "type": "EnvelopedVerifiableCredential" + } + ] + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -44211,9 +51377,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:1c9d96fa-0e66-4dfc-ac20-ce575674ec8c", + "_testId": "urn:uuid:946561a9-5fd6-4c44-9b46-bd22fd80b2a3", "cell": { "columnId": "OpSecId", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -44226,7 +51392,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99529, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44250,9 +51416,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:674f75f8-f462-4600-9be5-bec5b1fb135b", + "_testId": "urn:uuid:e364ca43-ee3b-4c65-a80b-f8cd46fb8153", "cell": { "columnId": "OpSecId", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -44265,7 +51431,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99529, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44293,7 +51459,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -44316,7 +51482,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -44326,7 +51492,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99453, + "_idleStart": 68687, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44343,9 +51509,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:81ecf60c-0ccf-4d78-8c4e-595d67693f1b" + "_testId": "urn:uuid:bb1d3594-d9b5-49a0-a331-97ddd4cd7acb" }, { "title": "Procivis One Core", @@ -44365,9 +51531,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:5b9913d0-3d38-4d16-ad5b-d5e925daf2db", + "_testId": "urn:uuid:cc2ec4df-fbd1-419b-b159-3f867fdd41ad", "cell": { "columnId": "Procivis One Core", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -44380,7 +51546,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44404,9 +51570,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:70c9c007-4516-474b-9521-213b1dcc278c", + "_testId": "urn:uuid:e4eb608e-86e3-448d-803f-d7584bb01dfc", "cell": { "columnId": "Procivis One Core", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -44419,7 +51585,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44443,9 +51609,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:2f6500bd-aec6-4474-8f8e-44e3c53bc042", + "_testId": "urn:uuid:89020c38-1e21-4735-a176-472b6d44ecb5", "cell": { "columnId": "Procivis One Core", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -44458,7 +51624,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44486,7 +51652,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -44509,7 +51675,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -44519,7 +51685,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44536,9 +51702,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:62dc616e-6b4d-404b-899b-29fecdc05ae6" + "_testId": "urn:uuid:fa2bca7f-707d-4a36-b962-d2859e800055" }, { "title": "SpruceID", @@ -44558,9 +51724,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:ffa44e82-f9fb-4fc6-8b79-4e2314a6e1fb", + "_testId": "urn:uuid:8ce0faf6-5a7a-498b-9201-69bdee62d7fe", "cell": { "columnId": "SpruceID", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -44573,7 +51739,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44597,9 +51763,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:a5b0d7dd-ac21-4396-9014-686eaee06afb", + "_testId": "urn:uuid:c78b4216-27bf-494b-9b50-98b582aee78a", "cell": { "columnId": "SpruceID", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -44612,7 +51778,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44636,9 +51802,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:019f23e6-6baa-4656-a39b-0dea26b5ad3b", + "_testId": "urn:uuid:2ffd6e3d-8257-458e-80c7-4cc0a33ad25d", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -44651,7 +51817,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44679,7 +51845,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -44702,7 +51868,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -44712,12 +51878,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "_error": null } ], @@ -44729,9 +51895,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:37b010c6-b8f4-476d-bd66-3ba74d5524c6" + "_testId": "urn:uuid:58d5a2f7-a90b-4a43-a21b-7ed5f2089d38" }, { "title": "VC Issuer Mock", @@ -44751,9 +51917,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:dd591479-ace0-4101-a73c-db12775b3f8e", + "_testId": "urn:uuid:c1120131-d418-42a1-80ee-0d3cb1a62321", "cell": { "columnId": "VC Issuer Mock", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -44766,7 +51932,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44790,9 +51956,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:bc4ed5bd-8087-4257-8a0b-7ef378345646", + "_testId": "urn:uuid:c5620836-4095-4ff4-bce0-ca2011db1ae8", "cell": { "columnId": "VC Issuer Mock", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -44805,7 +51971,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44829,9 +51995,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:8730ed7e-8cb3-4563-bc61-ed5cadedc710", + "_testId": "urn:uuid:9a73cdcc-3df3-4a8b-bf80-4a2207af3679", "cell": { "columnId": "VC Issuer Mock", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -44844,7 +52010,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44872,7 +52038,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -44895,7 +52061,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before all\" hook", @@ -44905,7 +52071,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -44922,9 +52088,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "HCe5X3rKF-4FGZR9VQhot", + "parent": "mOQjcmWMNdZY9XjiHEwMo", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:24fc6901-9b16-4558-b347-3d0a65022001" + "_testId": "urn:uuid:058030c3-6302-4470-b026-2ebe83812e3f" } ], "root": false, @@ -44940,13 +52106,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:a86fe35a-3954-4379-a21e-6e669960ad35", + "_testId": "urn:uuid:700cf3aa-9362-43fd-9662-4ab534bfd8dd", "columns": [ "ACA-py", "apicatalog.com", @@ -44974,9 +52140,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:1b00f0ae-2536-4dae-afc9-143d378d403f", + "_testId": "urn:uuid:fe4602fb-f137-44ea-a221-cba924531995", "cell": { "columnId": "ACA-py", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -44989,7 +52155,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45013,9 +52179,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:6dfcea01-d360-4829-b3f7-fe3071711f40", + "_testId": "urn:uuid:97794c0f-e54c-4d9a-98c8-3ec8e2b89053", "cell": { "columnId": "apicatalog.com", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -45028,7 +52194,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45052,9 +52218,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:65583147-f4b6-40db-b051-74d071cdd699", + "_testId": "urn:uuid:47cad88a-4bea-45aa-8e5c-5e72aad196cf", "cell": { "columnId": "Digital Bazaar", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification." @@ -45066,12 +52232,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99406, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 48, + "duration": 51, "state": "failed", "err": { "generatedMessage": false, @@ -45101,7 +52267,7 @@ }, "options": { "domain": "github.com/w3c/vc-data-model-2.0-test-suite", - "challenge": "uT1ASqTmMsCiHCzI6V3najQ", + "challenge": "u7OwR297KaMK25xiGBHLmOg", "checks": [ "proof" ] @@ -45171,7 +52337,7 @@ "timeout": 10000, "signal": {}, "duplex": "half", - "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"uT1ASqTmMsCiHCzI6V3najQ\",\"checks\":[\"proof\"]}}" + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\",\"checks\":[\"proof\"]}}" }, "name": "HTTPError", "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19w7KofwvE2nkJeRVLp8NDxz/presentations/verify", @@ -45246,9 +52412,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:aef64fff-fb63-48af-b622-4ada5493761e", + "_testId": "urn:uuid:2e68789e-1219-4033-8568-88a8ca3b6afe", "cell": { "columnId": "OpSecId", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification." @@ -45260,14 +52426,116 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99454, + "_idleStart": 68687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":\"https://www.w3.org/ns/credentials/v2\",\"id\":\"data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ\",\"type\":\"EnvelopedVerifiableCredential\"}]},\"options\":{\"domain\":\"github.com/w3c/vc-data-model-2.0-test-suite\",\"challenge\":\"u7OwR297KaMK25xiGBHLmOg\"}}", + "method": "POST", + "json": { + "verifiablePresentation": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiablePresentation" + ], + "verifiableCredential": [ + { + "@context": "https://www.w3.org/ns/credentials/v2", + "id": "data:application/vc-ld+jwt;base64url,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSIsImRlZ3JlZSI6eyJ0eXBlIjoiQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0sImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5lZHUvaXNzdWVycy81NjUwNDkiLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.0fkQPZOKlD0Sl0A798KBUNMOdGq90McQQIEtKU9tgSd9K1kRcxWVKDXQJcn_FJqLvo2bk793EHk-RTeEL1HyAQ", + "type": "EnvelopedVerifiableCredential" + } + ] + }, + "options": { + "domain": "github.com/w3c/vc-data-model-2.0-test-suite", + "challenge": "u7OwR297KaMK25xiGBHLmOg" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/presentations/verify", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -45282,9 +52550,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:5b9913d0-3d38-4d16-ad5b-d5e925daf2db", + "_testId": "urn:uuid:cc2ec4df-fbd1-419b-b159-3f867fdd41ad", "cell": { "columnId": "Procivis One Core", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -45297,7 +52565,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45321,9 +52589,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:ffa44e82-f9fb-4fc6-8b79-4e2314a6e1fb", + "_testId": "urn:uuid:8ce0faf6-5a7a-498b-9201-69bdee62d7fe", "cell": { "columnId": "SpruceID", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -45336,7 +52604,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45360,9 +52628,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:dd591479-ace0-4101-a73c-db12775b3f8e", + "_testId": "urn:uuid:c1120131-d418-42a1-80ee-0d3cb1a62321", "cell": { "columnId": "VC Issuer Mock", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", @@ -45375,7 +52643,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45405,9 +52673,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:e3b49d00-3051-46da-ab59-0a73232cba28", + "_testId": "urn:uuid:97c585cf-e946-4240-8f03-59d181ad8f24", "cell": { "columnId": "ACA-py", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45420,7 +52688,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45444,9 +52712,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:585a060a-6d5b-41eb-bdec-2778718b90ba", + "_testId": "urn:uuid:9ab5ffdd-ba5d-4435-b0b1-1b48db339158", "cell": { "columnId": "apicatalog.com", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45459,7 +52727,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45483,9 +52751,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:a7412699-d215-49a5-933a-4f25ba2373fe", + "_testId": "urn:uuid:57a38c61-deb2-40cb-abc9-edc611947d0b", "cell": { "columnId": "Digital Bazaar", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45498,7 +52766,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99453, + "_idleStart": 68686, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45522,9 +52790,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:1c9d96fa-0e66-4dfc-ac20-ce575674ec8c", + "_testId": "urn:uuid:946561a9-5fd6-4c44-9b46-bd22fd80b2a3", "cell": { "columnId": "OpSecId", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45537,7 +52805,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99529, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45561,9 +52829,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:70c9c007-4516-474b-9521-213b1dcc278c", + "_testId": "urn:uuid:e4eb608e-86e3-448d-803f-d7584bb01dfc", "cell": { "columnId": "Procivis One Core", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45576,7 +52844,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45600,9 +52868,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:a5b0d7dd-ac21-4396-9014-686eaee06afb", + "_testId": "urn:uuid:c78b4216-27bf-494b-9b50-98b582aee78a", "cell": { "columnId": "SpruceID", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45615,7 +52883,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45639,9 +52907,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:bc4ed5bd-8087-4257-8a0b-7ef378345646", + "_testId": "urn:uuid:c5620836-4095-4ff4-bce0-ca2011db1ae8", "cell": { "columnId": "VC Issuer Mock", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable credential using an enveloping security scheme, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -45654,7 +52922,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45684,9 +52952,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "wu5_DSJhjCoc7V1TJ-oC9", + "parent": "4lIvxk_O18U3dJ3sl_V9Y", "ctx": null, - "_testId": "urn:uuid:aba4dd80-2ba1-45cb-9763-4fa7957c62d0", + "_testId": "urn:uuid:9c227c98-ea58-4c0f-b782-950a23922e16", "cell": { "columnId": "ACA-py", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45699,7 +52967,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45723,9 +52991,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "CwgmTAStfpzmTba6iDhAU", + "parent": "KpJkhh2juAngElO_6yjKT", "ctx": null, - "_testId": "urn:uuid:17de9db2-d297-4603-b2d6-fccf8cda2f66", + "_testId": "urn:uuid:9c602e18-a48d-4728-891e-60a924fee468", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45738,7 +53006,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99405, + "_idleStart": 68635, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45762,9 +53030,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YYMJG-M7jEiarBKL8ZKjN", + "parent": "pDTsADkR-BjBqGODZ5FyR", "ctx": null, - "_testId": "urn:uuid:54133752-c1bf-4c9c-bb22-ff65cb4c3691", + "_testId": "urn:uuid:3aecf1aa-0184-4dfb-9c75-c11430b185c1", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45777,7 +53045,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99453, + "_idleStart": 68686, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45801,9 +53069,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "qw11qokDkhWx5SEbJ8qXS", + "parent": "5u4Hg-NYKlMKacmKOQ2D-", "ctx": null, - "_testId": "urn:uuid:674f75f8-f462-4600-9be5-bec5b1fb135b", + "_testId": "urn:uuid:e364ca43-ee3b-4c65-a80b-f8cd46fb8153", "cell": { "columnId": "OpSecId", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45816,7 +53084,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99529, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45840,9 +53108,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "mj_GLfeJ24fAYfXjuP8tb", + "parent": "M9_sFfL1k0_IEWzqDTHwB", "ctx": null, - "_testId": "urn:uuid:2f6500bd-aec6-4474-8f8e-44e3c53bc042", + "_testId": "urn:uuid:89020c38-1e21-4735-a176-472b6d44ecb5", "cell": { "columnId": "Procivis One Core", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45855,7 +53123,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68710, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45879,9 +53147,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Fr6wJzRikofsZU3d2h-u8", + "parent": "x7eN7HzLUEoFD04T1Dg4-", "ctx": null, - "_testId": "urn:uuid:019f23e6-6baa-4656-a39b-0dea26b5ad3b", + "_testId": "urn:uuid:2ffd6e3d-8257-458e-80c7-4cc0a33ad25d", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45894,7 +53162,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99530, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45918,9 +53186,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "nxaqnrftFUohxswZ_4jiE", + "parent": "ugq_172FwUya6jWhQejFf", "ctx": null, - "_testId": "urn:uuid:8730ed7e-8cb3-4563-bc61-ed5cadedc710", + "_testId": "urn:uuid:9a73cdcc-3df3-4a8b-bf80-4a2207af3679", "cell": { "columnId": "VC Issuer Mock", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential.", @@ -45933,7 +53201,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45960,7 +53228,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -45970,9 +53238,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:0ca0ab6c-15c9-4ed8-80ee-608a8f2a66db", + "_testId": "urn:uuid:454b8151-2545-4655-b1c4-d37771eb848b", "cell": { "columnId": "ACA-py", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -45985,7 +53253,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -45999,7 +53267,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46009,9 +53277,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:5b0bb9eb-00d6-478b-acdc-04a12b13b250", + "_testId": "urn:uuid:8e684be9-b987-48ab-a0ac-64561cd2a4bd", "cell": { "columnId": "ACA-py", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -46024,7 +53292,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46038,7 +53306,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46048,9 +53316,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:a37b01db-09da-4041-ade1-ebe6a1ad40ee", + "_testId": "urn:uuid:b26d85a6-6ed8-404c-aafa-43d3099a65dd", "cell": { "columnId": "ACA-py", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -46063,7 +53331,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46091,7 +53359,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46110,9 +53378,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:397ae19c-4921-4df0-96d7-229ece3ef214" + "_testId": "urn:uuid:835cfdf4-4f8c-4d53-8a7e-3a06127e2188" }, { "title": "apicatalog.com", @@ -46122,7 +53390,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46132,9 +53400,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:f545207e-90a8-4069-baa9-ae7ec9269df1", + "_testId": "urn:uuid:09944f47-62eb-443c-8a9b-d13578a8ac11", "cell": { "columnId": "apicatalog.com", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -46147,7 +53415,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46161,7 +53429,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46171,9 +53439,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:d1be273a-da4c-49c2-84b0-0e6883fb4855", + "_testId": "urn:uuid:d97163f1-bd60-4eaa-a9f3-f77645ca9099", "cell": { "columnId": "apicatalog.com", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -46186,7 +53454,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46200,7 +53468,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46210,9 +53478,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:c7472a4b-3cb0-473b-bd0e-e300c3e2b957", + "_testId": "urn:uuid:699e0f96-b148-42c3-9a7a-326d322fe947", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -46225,7 +53493,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46253,7 +53521,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46272,9 +53540,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:da8bf3f4-e2ac-40cc-a39b-4c7b6e75d4c3" + "_testId": "urn:uuid:a4b0c896-442b-41bd-b834-2f992a3da797" }, { "title": "Digital Bazaar", @@ -46284,7 +53552,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46294,9 +53562,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:b995c7e2-b461-4c70-82b8-dfcd5c3e88c7", + "_testId": "urn:uuid:1ed3f798-5940-41fc-90d4-5c8abbe9dfff", "cell": { "columnId": "Digital Bazaar", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification." @@ -46308,19 +53576,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99532, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 39, + "duration": 47, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46330,9 +53598,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:21855eed-030c-4400-a799-e9a00ae37971", + "_testId": "urn:uuid:fc6154c9-2690-456c-a998-9fde01fa6275", "cell": { "columnId": "Digital Bazaar", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]." @@ -46344,19 +53612,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99571, + "_idleStart": 68759, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 49, + "duration": 48, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46366,9 +53634,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:932df71f-d89a-48ef-9043-70da82fb2c04", + "_testId": "urn:uuid:64710713-3096-4810-9de7-2a99185c131f", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -46380,12 +53648,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99620, + "_idleStart": 68808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 38, + "duration": 45, "state": "passed", "speed": "medium" } @@ -46406,7 +53674,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46425,9 +53693,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:87bffdaa-19b2-4642-8444-0769c6c96d67" + "_testId": "urn:uuid:c36342ee-3f2b-45d4-9a06-cd266d51814a" }, { "title": "OpSecId", @@ -46437,7 +53705,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46447,9 +53715,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:db2a78d0-8b4b-4684-a81f-5db009768ff9", + "_testId": "urn:uuid:0d711f89-e02f-4f4a-b93a-78a38c89562f", "cell": { "columnId": "OpSecId", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification." @@ -46461,19 +53729,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99659, + "_idleStart": 68853, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46483,9 +53751,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:7ac8c553-1a64-40ae-a6b4-38d44a59c05c", + "_testId": "urn:uuid:886c47de-2126-4da9-a0bf-0351bf9f3546", "cell": { "columnId": "OpSecId", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]." @@ -46497,19 +53765,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99685, + "_idleStart": 68875, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46519,9 +53787,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:200496d4-3e7b-4d19-b3fa-95f1aef225ed", + "_testId": "urn:uuid:7f70aa9a-722f-4c53-832c-12366dc4331c", "cell": { "columnId": "OpSecId", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -46533,12 +53801,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99715, + "_idleStart": 68898, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 23, "state": "passed", "speed": "fast" } @@ -46559,7 +53827,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46578,9 +53846,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:b83527fb-5c13-4500-adb0-3d6183e25c85" + "_testId": "urn:uuid:8dbb0f17-b411-4495-b87a-495fa79b9b71" }, { "title": "Procivis One Core", @@ -46590,7 +53858,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46600,9 +53868,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:8d82d059-15ee-45e9-88e5-a88729c09559", + "_testId": "urn:uuid:fb2b1378-6000-47bd-87aa-124e8b7565e8", "cell": { "columnId": "Procivis One Core", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -46615,7 +53883,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99749, + "_idleStart": 68921, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46629,7 +53897,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46639,9 +53907,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:26dade69-5de1-456f-851a-a0decfc8a233", + "_testId": "urn:uuid:cee78e62-f412-4984-a407-206a156481df", "cell": { "columnId": "Procivis One Core", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -46654,12 +53922,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "No envelope support." @@ -46668,7 +53936,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46678,9 +53946,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:61af876a-15a3-4396-9fdf-204ae9e8f16c", + "_testId": "urn:uuid:f0f0f6ca-e30c-474d-9758-b9e9bfb7f7e1", "cell": { "columnId": "Procivis One Core", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -46693,7 +53961,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46721,7 +53989,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46740,9 +54008,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:5c066ca5-578f-4905-831f-fef519f9b755" + "_testId": "urn:uuid:1afdbae3-3679-4315-93de-3e04231fec89" }, { "title": "SpruceID", @@ -46752,7 +54020,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46762,9 +54030,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:f3c7ee64-5935-427f-bc8f-3979b0afdca4", + "_testId": "urn:uuid:cb116c11-75eb-47b7-a17c-6e5ec8622cbd", "cell": { "columnId": "SpruceID", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -46777,7 +54045,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46791,7 +54059,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46801,9 +54069,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:2e71546b-f94a-4f05-9fe2-ff4b91bd41cc", + "_testId": "urn:uuid:52300c53-0c70-405a-a779-0ba36a0d77c6", "cell": { "columnId": "SpruceID", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -46816,7 +54084,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46830,7 +54098,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46840,9 +54108,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:2dfcb4db-1c57-4d88-982f-bf145a839689", + "_testId": "urn:uuid:c1ac30bb-e527-477d-8254-48a5fe21007e", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -46855,7 +54123,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46883,7 +54151,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -46902,9 +54170,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:2dae1184-3246-4d7b-8526-d91a1242e693" + "_testId": "urn:uuid:18325cd6-5bd5-4d46-ae64-2046f3b2f1f4" }, { "title": "VC Issuer Mock", @@ -46914,7 +54182,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46924,9 +54192,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:bde2898c-3910-4920-b5bf-f9b564e8bbc6", + "_testId": "urn:uuid:a12249d1-b8b0-4932-92c8-7cbbc0ab1c00", "cell": { "columnId": "VC Issuer Mock", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -46939,7 +54207,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46953,7 +54221,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -46963,9 +54231,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:3487ad02-9ab6-4013-af5f-40bc070e9dd9", + "_testId": "urn:uuid:d43e4d7c-3a2c-46aa-a442-8a349e3c9686", "cell": { "columnId": "VC Issuer Mock", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -46978,7 +54246,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -46992,7 +54260,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47002,9 +54270,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:3b3e3a28-94ee-4755-b03c-3462d2ac4374", + "_testId": "urn:uuid:53f564e0-535c-489b-86ea-de4611e26483", "cell": { "columnId": "VC Issuer Mock", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47017,7 +54285,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47045,7 +54313,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -47064,9 +54332,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "aMFtK5S0MXEj8O65ACjjS", + "parent": "iaxl1z1tU8kjdqSZyI2fu", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "_testId": "urn:uuid:a4b243d1-eb03-41c1-848e-6c30cc6faea7" + "_testId": "urn:uuid:545b9fb8-7d60-477a-b431-aa4f257cf8b5" } ], "root": false, @@ -47082,13 +54350,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:af5688eb-104f-4f5e-9212-fb9b4a21a4e7", + "_testId": "urn:uuid:08339de5-8ca2-46bf-bd68-0efbbbe1c50d", "columns": [ "ACA-py", "apicatalog.com", @@ -47106,7 +54374,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47116,9 +54384,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:0ca0ab6c-15c9-4ed8-80ee-608a8f2a66db", + "_testId": "urn:uuid:454b8151-2545-4655-b1c4-d37771eb848b", "cell": { "columnId": "ACA-py", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -47131,7 +54399,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47145,7 +54413,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47155,9 +54423,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:f545207e-90a8-4069-baa9-ae7ec9269df1", + "_testId": "urn:uuid:09944f47-62eb-443c-8a9b-d13578a8ac11", "cell": { "columnId": "apicatalog.com", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -47170,7 +54438,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47184,7 +54452,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47194,9 +54462,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:b995c7e2-b461-4c70-82b8-dfcd5c3e88c7", + "_testId": "urn:uuid:1ed3f798-5940-41fc-90d4-5c8abbe9dfff", "cell": { "columnId": "Digital Bazaar", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification." @@ -47208,19 +54476,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99532, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 39, + "duration": 47, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47230,9 +54498,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:db2a78d0-8b4b-4684-a81f-5db009768ff9", + "_testId": "urn:uuid:0d711f89-e02f-4f4a-b93a-78a38c89562f", "cell": { "columnId": "OpSecId", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification." @@ -47244,19 +54512,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99659, + "_idleStart": 68853, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47266,9 +54534,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:8d82d059-15ee-45e9-88e5-a88729c09559", + "_testId": "urn:uuid:fb2b1378-6000-47bd-87aa-124e8b7565e8", "cell": { "columnId": "Procivis One Core", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -47281,7 +54549,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99749, + "_idleStart": 68921, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47295,7 +54563,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47305,9 +54573,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:f3c7ee64-5935-427f-bc8f-3979b0afdca4", + "_testId": "urn:uuid:cb116c11-75eb-47b7-a17c-6e5ec8622cbd", "cell": { "columnId": "SpruceID", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -47320,7 +54588,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47334,7 +54602,7 @@ { "type": "test", "title": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiablePresentation%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-context-fail.json')),\n\n 'Failed to reject Enveloped VP missing contexts.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47344,9 +54612,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:bde2898c-3910-4920-b5bf-f9b564e8bbc6", + "_testId": "urn:uuid:a12249d1-b8b0-4932-92c8-7cbbc0ab1c00", "cell": { "columnId": "VC Issuer Mock", "rowId": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", @@ -47359,7 +54627,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47379,7 +54647,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47389,9 +54657,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:5b0bb9eb-00d6-478b-acdc-04a12b13b250", + "_testId": "urn:uuid:8e684be9-b987-48ab-a0ac-64561cd2a4bd", "cell": { "columnId": "ACA-py", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -47404,7 +54672,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47418,7 +54686,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47428,9 +54696,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:d1be273a-da4c-49c2-84b0-0e6883fb4855", + "_testId": "urn:uuid:d97163f1-bd60-4eaa-a9f3-f77645ca9099", "cell": { "columnId": "apicatalog.com", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -47443,7 +54711,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47457,7 +54725,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47467,9 +54735,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:21855eed-030c-4400-a799-e9a00ae37971", + "_testId": "urn:uuid:fc6154c9-2690-456c-a998-9fde01fa6275", "cell": { "columnId": "Digital Bazaar", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]." @@ -47481,19 +54749,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99571, + "_idleStart": 68759, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 49, + "duration": 48, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47503,9 +54771,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:7ac8c553-1a64-40ae-a6b4-38d44a59c05c", + "_testId": "urn:uuid:886c47de-2126-4da9-a0bf-0351bf9f3546", "cell": { "columnId": "OpSecId", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]." @@ -47517,19 +54785,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99685, + "_idleStart": 68875, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47539,9 +54807,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:26dade69-5de1-456f-851a-a0decfc8a233", + "_testId": "urn:uuid:cee78e62-f412-4984-a407-206a156481df", "cell": { "columnId": "Procivis One Core", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -47554,12 +54822,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "No envelope support." @@ -47568,7 +54836,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47578,9 +54846,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:2e71546b-f94a-4f05-9fe2-ff4b91bd41cc", + "_testId": "urn:uuid:52300c53-0c70-405a-a779-0ba36a0d77c6", "cell": { "columnId": "SpruceID", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -47593,7 +54861,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47607,7 +54875,7 @@ { "type": "test", "title": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20presentation%20using%20an%20enveloping%20securing%20mechanism%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-id-fail.json')),\n\n 'Failed to reject Enveloped VP with an id that is not a data url.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47617,9 +54885,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:3487ad02-9ab6-4013-af5f-40bc070e9dd9", + "_testId": "urn:uuid:d43e4d7c-3a2c-46aa-a442-8a349e3c9686", "cell": { "columnId": "VC Issuer Mock", "rowId": "The id value of the object MUST be a data: URL [RFC2397] that expresses a secured verifiable presentation using an enveloping securing mechanism, such as Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].", @@ -47632,7 +54900,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47652,7 +54920,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47662,9 +54930,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "LQGM9qYM-RXr8DeURqhGZ", + "parent": "mJNw6yGcCG1jsmWaR1fhQ", "ctx": null, - "_testId": "urn:uuid:a37b01db-09da-4041-ade1-ebe6a1ad40ee", + "_testId": "urn:uuid:b26d85a6-6ed8-404c-aafa-43d3099a65dd", "cell": { "columnId": "ACA-py", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47677,7 +54945,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68711, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47691,7 +54959,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47701,9 +54969,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "-r5K8BUIOrb9jXbdBj_pU", + "parent": "A5glOs0oa1iedWhd9xM6Y", "ctx": null, - "_testId": "urn:uuid:c7472a4b-3cb0-473b-bd0e-e300c3e2b957", + "_testId": "urn:uuid:699e0f96-b148-42c3-9a7a-326d322fe947", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47716,7 +54984,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99531, + "_idleStart": 68712, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47730,7 +54998,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47740,9 +55008,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "YPVJ0mXw21H-xOuqYB6p_", + "parent": "0v7TJ89HWGs07QEBzRH7Z", "ctx": null, - "_testId": "urn:uuid:932df71f-d89a-48ef-9043-70da82fb2c04", + "_testId": "urn:uuid:64710713-3096-4810-9de7-2a99185c131f", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -47754,19 +55022,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99620, + "_idleStart": 68808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 38, + "duration": 45, "state": "passed", "speed": "medium" }, { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47776,9 +55044,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "2qJUIW8quyqeB32GVtc_P", + "parent": "kmxdihAAWDgH9VTC2v1HH", "ctx": null, - "_testId": "urn:uuid:200496d4-3e7b-4d19-b3fa-95f1aef225ed", + "_testId": "urn:uuid:7f70aa9a-722f-4c53-832c-12366dc4331c", "cell": { "columnId": "OpSecId", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -47790,19 +55058,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99715, + "_idleStart": 68898, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47812,9 +55080,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "Hhcl7RLa60wLoauCyVYin", + "parent": "AvOIxYWJGhw6WK_yz7OMe", "ctx": null, - "_testId": "urn:uuid:61af876a-15a3-4396-9fdf-204ae9e8f16c", + "_testId": "urn:uuid:f0f0f6ca-e30c-474d-9758-b9e9bfb7f7e1", "cell": { "columnId": "Procivis One Core", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47827,7 +55095,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47841,7 +55109,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47851,9 +55119,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "zFosBMrBdP6jZNMMDTDBZ", + "parent": "B2D1NC568rEfQJu1HK_p4", "ctx": null, - "_testId": "urn:uuid:2dfcb4db-1c57-4d88-982f-bf145a839689", + "_testId": "urn:uuid:c1ac30bb-e527-477d-8254-48a5fe21007e", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47866,7 +55134,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47880,7 +55148,7 @@ { "type": "test", "title": "The type value of the object MUST be EnvelopedVerifiablePresentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.`;\n if(!vpVerifierEnvelopeSupport) {\n this.test.cell.skipMessage = 'No envelope support.';\n this.skip();\n } else {\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/enveloped-presentation-type-fail.json')),\n\n 'Failed to reject VP w/o type \"EnvelopedVerifiablePresentation\".');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47890,9 +55158,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/413.2-envelopes.js", - "parent": "oaiFDpsbKGezMEKqslm_c", + "parent": "Bu0dnt3ImilnZNaUW4iqk", "ctx": null, - "_testId": "urn:uuid:3b3e3a28-94ee-4755-b03c-3462d2ac4374", + "_testId": "urn:uuid:53f564e0-535c-489b-86ea-de4611e26483", "cell": { "columnId": "VC Issuer Mock", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation.", @@ -47905,7 +55173,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99750, + "_idleStart": 68922, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -47932,7 +55200,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47942,9 +55210,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:925cc00f-7e8d-451f-ac6c-74685e6bccbc", + "_testId": "urn:uuid:1c08cf98-2e78-4246-ae4e-fd38cda29cac", "cell": { "columnId": "ACA-py", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -47956,19 +55224,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99754, + "_idleStart": 68923, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 116, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -47978,9 +55246,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:eb10dc23-64fc-4940-b76a-dbb4e84c207a", + "_testId": "urn:uuid:40f67519-26b9-4ca5-8ab6-da496b4f7291", "cell": { "columnId": "ACA-py", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -47993,12 +55261,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99875, + "_idleStart": 69038, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -48116,7 +55384,7 @@ { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48126,9 +55394,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:a48bea97-428f-4845-a279-7d520c796ab6", + "_testId": "urn:uuid:62d1f610-d99a-4e4e-b9d3-184b986ce56d", "cell": { "columnId": "ACA-py", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -48140,19 +55408,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99903, + "_idleStart": 69065, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 26, "state": "passed", "speed": "fast" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48162,9 +55430,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:044c5e49-1674-405d-b3eb-04cf2af398de", + "_testId": "urn:uuid:7303cfbd-ea0d-4826-b074-99358ed230b1", "cell": { "columnId": "ACA-py", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -48176,12 +55444,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99930, + "_idleStart": 69092, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 33, + "duration": 26, "state": "passed", "speed": "fast" }, @@ -48198,9 +55466,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:8653bcd5-06e4-4e3e-b8ac-9933dc2cae62", + "_testId": "urn:uuid:4ebc943b-7ba5-4f37-ab82-ac691b18584e", "cell": { "columnId": "ACA-py", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -48212,12 +55480,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99963, + "_idleStart": 69118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -48329,7 +55597,7 @@ { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48339,9 +55607,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:1f96ee54-42dd-4ec1-a49a-14ac10962de6", + "_testId": "urn:uuid:fa445797-68f1-4d37-b784-6d5072279f78", "cell": { "columnId": "ACA-py", "rowId": "Each refreshService value MUST specify its type." @@ -48353,12 +55621,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99992, + "_idleStart": 69145, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "passed", "speed": "fast" }, @@ -48375,9 +55643,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:ec1e4198-571f-4ade-a887-a5ef2fe9a944", + "_testId": "urn:uuid:42b27d70-15b3-4296-b932-bb0dcc9f2ad6", "cell": { "columnId": "ACA-py", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -48389,12 +55657,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100021, + "_idleStart": 69173, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -48513,7 +55781,7 @@ { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48523,9 +55791,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:310ca933-d848-42b0-82c6-40b5da5a4307", + "_testId": "urn:uuid:75adaeaa-bb48-404c-9b94-7e2c03ffb5c8", "cell": { "columnId": "ACA-py", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -48537,12 +55805,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100048, + "_idleStart": 69203, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 55, + "duration": 59, "state": "failed", "err": { "generatedMessage": false, @@ -48667,9 +55935,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:945e2e39-28e7-42da-8273-1b45d696fe91", + "_testId": "urn:uuid:55cb53d1-0826-41d4-a9df-16d839d7079e", "cell": { "columnId": "ACA-py", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -48681,12 +55949,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100104, + "_idleStart": 69263, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -48815,9 +56083,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:448f6f15-c70a-4481-bc12-f512a128d3a4", + "_testId": "urn:uuid:8b32c963-73ae-4ec8-9bb1-9628cbaed87a", "cell": { "columnId": "ACA-py", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -48830,7 +56098,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100132, + "_idleStart": 69290, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -48858,7 +56126,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -48877,9 +56145,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:1cf79a9d-f41f-4d68-b2b3-1fe8dfdbea12" + "_testId": "urn:uuid:69c134b9-5fcf-4d29-87e8-fa7eaac3d60f" }, { "title": "apicatalog.com", @@ -48889,7 +56157,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48899,9 +56167,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:07d6e3ea-dfaf-4245-b592-6d306a1c6a7d", + "_testId": "urn:uuid:6f2a916e-9a1d-464e-b0c6-b38b01af6fa2", "cell": { "columnId": "apicatalog.com", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -48913,19 +56181,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100132, + "_idleStart": 69290, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 176, + "duration": 67, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48935,9 +56203,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:221e58bc-637b-4f5a-9a56-e362943aabca", + "_testId": "urn:uuid:5649b8fb-110f-4685-8cd5-66d9c27b8990", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -48950,26 +56218,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100308, + "_idleStart": 69357, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 662, + "duration": 823, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -48979,9 +56244,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:5d196134-c6b1-42fc-9377-f739d1057870", + "_testId": "urn:uuid:0053fdbf-da49-4281-a954-19454f7ab108", "cell": { "columnId": "apicatalog.com", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -48993,26 +56258,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100971, + "_idleStart": 70181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 124, + "duration": 97, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49022,9 +56284,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:13210a7c-6664-4428-baed-2ccb1b7f55d5", + "_testId": "urn:uuid:5b14d213-10d5-44f4-aad1-be3d3ca31070", "cell": { "columnId": "apicatalog.com", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -49036,19 +56298,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101095, + "_idleStart": 70278, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 174, + "duration": 99, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -49065,9 +56324,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:99caaf7e-85ab-49a0-b577-df4065dc42d0", + "_testId": "urn:uuid:02da8ea6-ceb2-4923-aa59-49e502e52569", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -49079,19 +56338,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101269, + "_idleStart": 70378, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 594, + "duration": 325, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49101,9 +56360,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:1ff56a0c-8d12-4fb1-a493-e76a4b2f979b", + "_testId": "urn:uuid:972a2b09-aa3f-4c48-b0fe-f766f86e4d23", "cell": { "columnId": "apicatalog.com", "rowId": "Each refreshService value MUST specify its type." @@ -49115,19 +56374,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101862, + "_idleStart": 70703, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 202, + "duration": 275, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -49144,9 +56400,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:86dfd765-8bae-4335-bd96-1a06a33e18eb", + "_testId": "urn:uuid:3e97f436-edba-481b-a7db-3230ced78fe6", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -49158,19 +56414,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102065, + "_idleStart": 70979, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 202, + "duration": 302, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49180,9 +56436,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:3e4ae084-7f3c-4775-87ce-1123574765d1", + "_testId": "urn:uuid:cf8daf07-6137-4feb-a6cb-271f85757950", "cell": { "columnId": "apicatalog.com", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -49194,19 +56450,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102268, + "_idleStart": 71282, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 194, + "duration": 300, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -49223,9 +56476,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:85590050-d1dd-44d6-a330-2b18c95eb4b0", + "_testId": "urn:uuid:1994b878-df27-4f19-a28a-208d47589d18", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -49237,12 +56490,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102462, + "_idleStart": 71583, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 198, "state": "passed", "speed": "slow" }, @@ -49259,9 +56512,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:c5c6d05b-6b6a-42a2-9b34-94b4d1e10d70", + "_testId": "urn:uuid:4a37dbbf-d0de-4ee2-a4b1-24fbab05d8e2", "cell": { "columnId": "apicatalog.com", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -49274,12 +56527,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102589, + "_idleStart": 71781, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "TBD" @@ -49302,7 +56555,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -49321,9 +56574,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:b965e7f8-d0a4-43b2-a873-58cf2f42293f" + "_testId": "urn:uuid:4c950650-431d-4d6e-9d17-40d28503ece3" }, { "title": "Digital Bazaar", @@ -49333,7 +56586,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49343,9 +56596,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:08bf0419-1229-40c5-839b-0b3bdf9ea102", + "_testId": "urn:uuid:fc1cf075-c4bc-4445-86b5-65384dd779f1", "cell": { "columnId": "Digital Bazaar", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -49357,19 +56610,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102590, + "_idleStart": 71781, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 300, + "duration": 289, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49379,9 +56632,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:4b054dd5-efa8-497b-8143-c5db8fa89f1d", + "_testId": "urn:uuid:0fc2c96c-9d22-44ac-a1fb-52843d676b5f", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -49394,19 +56647,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102890, + "_idleStart": 72070, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 205, + "duration": 314, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49416,9 +56669,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:74cf8fc6-682d-456c-8bfb-f9544f7fb1e3", + "_testId": "urn:uuid:17dbb8bf-e122-4c42-bc29-a48e8446c452", "cell": { "columnId": "Digital Bazaar", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -49430,26 +56683,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103095, + "_idleStart": 72384, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 86, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49459,9 +56709,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:19984ac2-71c7-4b9e-b2c0-f589fd4d6e2c", + "_testId": "urn:uuid:b2cbe8b1-9b09-4a53-acb5-8c0a6b8dd140", "cell": { "columnId": "Digital Bazaar", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -49473,19 +56723,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103167, + "_idleStart": 72470, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 100, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -49502,9 +56749,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:865e757e-2ae1-474f-9e08-24c5d50ee93e", + "_testId": "urn:uuid:8f190d92-a370-4b27-8846-0d36dca5b5a5", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -49516,19 +56763,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103250, + "_idleStart": 72570, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 226, + "duration": 175, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49538,9 +56785,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:12fc3c33-d1fd-49c3-a456-568788496555", + "_testId": "urn:uuid:3bb30e1a-7c6c-4ad9-9429-bb1cb298c538", "cell": { "columnId": "Digital Bazaar", "rowId": "Each refreshService value MUST specify its type." @@ -49552,14 +56799,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103477, + "_idleStart": 72745, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, + "duration": 45, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -49574,9 +56821,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:bbaf3c24-9ca1-4723-ad29-f9f06bbebcf8", + "_testId": "urn:uuid:b17cc246-6b35-4b3e-9e5d-518c9c16d275", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -49588,19 +56835,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103587, + "_idleStart": 72790, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 98, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49610,9 +56857,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:ddd62d70-6ca4-487b-80a6-914114a9637c", + "_testId": "urn:uuid:4d91ab35-c17d-422e-b166-8e74c7960af9", "cell": { "columnId": "Digital Bazaar", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -49624,12 +56871,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103680, + "_idleStart": 72889, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 135, "state": "passed", "speed": "slow" }, @@ -49646,9 +56893,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:345c5608-9f59-49b2-b7df-edf9a5996923", + "_testId": "urn:uuid:c729f970-09b5-4f12-b64d-0a91531592b8", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -49660,12 +56907,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103796, + "_idleStart": 73023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 84, "state": "passed", "speed": "slow" }, @@ -49682,9 +56929,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:74669f65-0f25-481a-b2ef-2104d622bfe8", + "_testId": "urn:uuid:dd53398d-a922-4b3e-a072-95a7d5b366b4", "cell": { "columnId": "Digital Bazaar", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -49697,7 +56944,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103895, + "_idleStart": 73107, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -49725,7 +56972,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -49744,9 +56991,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:f678cfdd-a32e-4890-ab97-da28fb068469" + "_testId": "urn:uuid:97ce55fd-92db-42c7-a8a6-240d8fdc45c4" }, { "title": "OpSecId", @@ -49756,7 +57003,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49766,9 +57013,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:e03491bb-5772-4ada-84bb-4a42558acac7", + "_testId": "urn:uuid:13cae3c0-13fb-44cc-a197-38cb424888de", "cell": { "columnId": "OpSecId", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -49780,19 +57027,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103895, + "_idleStart": 73108, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 105, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49802,9 +57049,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:2bf880bc-165a-40e6-a35a-4db34961e9d8", + "_testId": "urn:uuid:605fb3bb-2bc6-4777-8f62-18fc33a7e1a4", "cell": { "columnId": "OpSecId", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -49817,19 +57064,128 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104029, + "_idleStart": 73213, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 192, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"relatedResource\":[{\"id\":\"https://w3c.github.io/vc-data-model/related-resource.json\",\"digestMultibase\":\"uZTQ0MjM1NiAgcmVwb3J0cy9yZWxhdGVkLXJlc291cmNlLmpzb24K\"},{\"id\":\"https://w3c.github.io/vc-data-model/related-resource.json\",\"digestSRI\":\"sha256-ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "relatedResource": [ + { + "id": "https://w3c.github.io/vc-data-model/related-resource.json", + "digestMultibase": "uZTQ0MjM1NiAgcmVwb3J0cy9yZWxhdGVkLXJlc291cmNlLmpzb24K" + }, + { + "id": "https://w3c.github.io/vc-data-model/related-resource.json", + "digestSRI": "sha256-ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49839,9 +57195,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:25672c92-6190-4575-845f-b22ab161c5b0", + "_testId": "urn:uuid:175d5161-1ecf-4269-b8db-9f73966adc47", "cell": { "columnId": "OpSecId", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -49853,19 +57209,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104222, + "_idleStart": 73237, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 68, + "duration": 22, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49875,9 +57231,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:9b76966e-6110-42ad-a13b-205450cbbdef", + "_testId": "urn:uuid:a881bd11-79c8-49f1-a6d1-6dc5bfa7e867", "cell": { "columnId": "OpSecId", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -49889,14 +57245,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104291, + "_idleStart": 73260, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 23, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", @@ -49911,9 +57267,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:4c7006cc-b8c5-4ba9-9493-d196164ce3eb", + "_testId": "urn:uuid:1fe5e5f5-f439-43bd-9d41-2979421337be", "cell": { "columnId": "OpSecId", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -49925,19 +57281,122 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104361, + "_idleStart": 73283, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 151, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"type\":\"https://example.org/#ExampleTestSuiteRefreshService\",\"id\":\"did:example:refresh/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "refreshService": { + "type": "https://example.org/#ExampleTestSuiteRefreshService", + "id": "did:example:refresh/1" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -49947,9 +57406,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:17da7d5e-8ca8-46f6-814a-3025650739dc", + "_testId": "urn:uuid:143f8d3d-e9db-4e68-b663-a76222c31b33", "cell": { "columnId": "OpSecId", "rowId": "Each refreshService value MUST specify its type." @@ -49961,14 +57420,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104512, + "_idleStart": 73306, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 23, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", @@ -49983,9 +57442,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:8847b84c-5d6c-45c6-aedd-9b36cc5b61fe", + "_testId": "urn:uuid:fb92e928-5487-40c6-8c75-eaf94e769c37", "cell": { "columnId": "OpSecId", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -49997,19 +57456,129 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104581, + "_idleStart": 73330, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 93, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":[{\"type\":\"OdrlPolicy2017\"},{\"type\":\"OdrlPolicy2017\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": [ + { + "type": "OdrlPolicy2017" + }, + { + "type": "OdrlPolicy2017" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50019,9 +57588,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:6aad091d-8213-4184-a166-462a2e0eb5c5", + "_testId": "urn:uuid:89c0d512-bd03-4741-9401-c8b8088dfd71", "cell": { "columnId": "OpSecId", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -50033,14 +57602,120 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104675, + "_idleStart": 73353, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 146, - "state": "passed", - "speed": "slow" + "duration": 46, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\",\"id\":\"did:example:terms/1\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": { + "type": "OdrlPolicy2017", + "id": "did:example:terms/1" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -50055,9 +57730,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:7f4485b9-10aa-438a-aaed-b0f54274791c", + "_testId": "urn:uuid:96eb9f42-e78c-4846-9667-50e747bd8b16", "cell": { "columnId": "OpSecId", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -50069,14 +57744,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104821, + "_idleStart": 73399, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 78, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":[{\"type\":\"DocumentVerification2018\"},{\"type\":\"DocumentVerification2018\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "evidence": [ + { + "type": "DocumentVerification2018" + }, + { + "type": "DocumentVerification2018" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -50091,9 +57876,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:31f00300-5a82-43ac-ae99-e61d63e69a4e", + "_testId": "urn:uuid:9bd9f012-6c06-413d-a49d-b66f5fd08c41", "cell": { "columnId": "OpSecId", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -50106,7 +57891,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104899, + "_idleStart": 73423, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -50134,7 +57919,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -50153,9 +57938,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:cd7fd578-9cec-4f70-988b-b6f8a7b4545e" + "_testId": "urn:uuid:05f3ec54-039b-4860-b658-f51d0456679d" }, { "title": "Procivis One Core", @@ -50165,7 +57950,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50175,9 +57960,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:f69d690e-0081-4a3f-97fc-c62bf3a7651f", + "_testId": "urn:uuid:b092c3f0-46d7-4da7-863c-ea4979c13261", "cell": { "columnId": "Procivis One Core", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -50189,19 +57974,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104899, + "_idleStart": 73423, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 676, + "duration": 776, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50211,9 +57996,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:56b51aec-1737-48d0-91d7-ff76ae84d62d", + "_testId": "urn:uuid:04db47aa-9ee1-4d99-ba87-31216b2fb7cd", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -50226,19 +58011,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 105576, + "_idleStart": 74199, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 346, + "duration": 395, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50248,9 +58033,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:da381903-ff62-4313-9a5b-565005580507", + "_testId": "urn:uuid:a1a8f42b-14eb-47a4-8c50-aa5c122468ab", "cell": { "columnId": "Procivis One Core", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -50262,19 +58047,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 105923, + "_idleStart": 74594, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 115, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50284,9 +58069,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:088679a8-b7fb-4fe6-be86-19e2842e07d8", + "_testId": "urn:uuid:804ff75e-2bd3-40ef-b1ca-0da3ac364934", "cell": { "columnId": "Procivis One Core", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -50298,12 +58083,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106023, + "_idleStart": 74709, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 122, "state": "passed", "speed": "slow" }, @@ -50320,9 +58105,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:e082ef31-cb67-41e4-981b-296726c6955e", + "_testId": "urn:uuid:5d26cec8-4c99-46e1-bfe8-ed195d7d0089", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -50334,19 +58119,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106129, + "_idleStart": 74831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 245, + "duration": 288, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50356,9 +58141,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:dd0004f8-8ed9-4179-a4d6-6bdeea3f806e", + "_testId": "urn:uuid:b0287c12-8d52-4f0c-9d1c-30e482a7028a", "cell": { "columnId": "Procivis One Core", "rowId": "Each refreshService value MUST specify its type." @@ -50370,12 +58155,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106374, + "_idleStart": 75119, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 116, "state": "passed", "speed": "slow" }, @@ -50392,9 +58177,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:2479b0ef-4858-4dd1-b8b0-366be12c714c", + "_testId": "urn:uuid:ee627cac-f3c0-42de-8f7a-1af482510192", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -50406,19 +58191,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106474, + "_idleStart": 75235, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 220, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50428,9 +58213,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:6770c48c-1906-4281-a71d-2ffd8f22f765", + "_testId": "urn:uuid:8fbeb8cc-2c06-4838-8820-019f34829bec", "cell": { "columnId": "Procivis One Core", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -50442,12 +58227,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106595, + "_idleStart": 75456, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 221, + "duration": 280, "state": "passed", "speed": "slow" }, @@ -50464,9 +58249,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:5450859b-3de6-4ec3-953d-3feba87ee355", + "_testId": "urn:uuid:665783d3-fb0e-44ca-928b-deb19bec54e1", "cell": { "columnId": "Procivis One Core", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -50478,12 +58263,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106816, + "_idleStart": 75736, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 125, + "duration": 174, "state": "passed", "speed": "slow" }, @@ -50500,9 +58285,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:06c5d1d9-0f10-4260-a242-e8df54e2a3d9", + "_testId": "urn:uuid:c2284703-500b-4828-8a51-4359ef34b755", "cell": { "columnId": "Procivis One Core", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -50515,7 +58300,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106941, + "_idleStart": 75910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -50543,7 +58328,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -50562,9 +58347,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:43fa8d60-9cf1-4743-9957-98843cf21fcc" + "_testId": "urn:uuid:91c43978-1512-438a-9b99-78676ed01722" }, { "title": "SpruceID", @@ -50574,7 +58359,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50584,9 +58369,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:5b216438-8e6e-415f-bff9-4f7956231d5e", + "_testId": "urn:uuid:56580c58-0920-44ce-b34c-9aac8f074a0b", "cell": { "columnId": "SpruceID", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -50598,19 +58383,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106942, + "_idleStart": 75910, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, + "duration": 125, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50620,9 +58405,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:6bb20ff4-c766-479d-83fe-23fa8e463be6", + "_testId": "urn:uuid:4b7e571f-a52e-49ea-b5ac-13a84ffe23ca", "cell": { "columnId": "SpruceID", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -50635,26 +58420,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107047, + "_idleStart": 76035, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 137, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50664,9 +58446,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:867b209f-d06b-4a7d-af48-ec76217f89a2", + "_testId": "urn:uuid:9aac984a-ed06-4ac6-b7ad-4a2c0736c5ae", "cell": { "columnId": "SpruceID", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -50678,26 +58460,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107133, + "_idleStart": 76172, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 49, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50707,9 +58486,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:c50f20a8-c88c-4424-b94e-b977342f0c7a", + "_testId": "urn:uuid:78f80b5a-a390-4c50-a13d-ec2ae66ac1eb", "cell": { "columnId": "SpruceID", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -50721,19 +58500,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107162, + "_idleStart": 76221, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 54, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -50750,9 +58526,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:002cf4b9-108b-4eb3-a5d5-95237aa94f65", + "_testId": "urn:uuid:66bb3d16-8a15-4a15-9a18-7c9a882ea898", "cell": { "columnId": "SpruceID", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -50764,19 +58540,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107190, + "_idleStart": 76275, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 55, + "duration": 94, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50786,9 +58562,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:093460af-eddc-40bc-a7a3-a771a07971d7", + "_testId": "urn:uuid:bc57281b-43e6-4a5b-a661-084a268e4ec9", "cell": { "columnId": "SpruceID", "rowId": "Each refreshService value MUST specify its type." @@ -50800,14 +58576,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107245, + "_idleStart": 76370, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 22, + "duration": 42, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -50822,9 +58598,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:a7acc22c-9f8d-4a82-a194-94b60f07f3e2", + "_testId": "urn:uuid:0dcc6402-5306-4352-98fe-d408552c5532", "cell": { "columnId": "SpruceID", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -50836,19 +58612,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107268, + "_idleStart": 76412, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 46, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -50858,9 +58634,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:44c0c1ab-ad75-4817-99e0-ab87bc50e6e7", + "_testId": "urn:uuid:9810dbf4-1627-4e13-a85e-8148ded41d8e", "cell": { "columnId": "SpruceID", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -50872,14 +58648,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107297, + "_idleStart": 76458, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 53, + "duration": 90, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", @@ -50894,9 +58670,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:100758bb-cc82-48bf-aa63-7e823bdf20a4", + "_testId": "urn:uuid:462a2289-394c-4a6a-8817-ea41c8d8bb3b", "cell": { "columnId": "SpruceID", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -50908,14 +58684,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107351, + "_idleStart": 76549, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 50, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -50930,9 +58706,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:44542a99-3b9e-4dd3-9759-9f1b1aec31e0", + "_testId": "urn:uuid:41ae8768-ec6e-4bd1-8015-1203f35cfc59", "cell": { "columnId": "SpruceID", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -50945,7 +58721,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107379, + "_idleStart": 76600, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -50973,7 +58749,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -50992,9 +58768,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:c3cfee59-dd16-4059-9f5d-0dae22e0b1f6" + "_testId": "urn:uuid:7b00c677-2969-41b4-8124-c447f677c71c" }, { "title": "VC Issuer Mock", @@ -51004,7 +58780,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51014,9 +58790,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:6d59a8c4-3238-4991-9c20-ebb58a0475e9", + "_testId": "urn:uuid:b2a75db7-23e5-48b6-9337-e2149556ad1d", "cell": { "columnId": "VC Issuer Mock", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51028,19 +58804,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107380, + "_idleStart": 76600, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 459, + "duration": 233, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51050,9 +58826,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:5fa144fc-fa43-4814-b6cc-1d5814e07b99", + "_testId": "urn:uuid:63e2cf07-9f44-4bf4-b94a-94a61d864a3e", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -51065,26 +58841,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107838, + "_idleStart": 76833, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 549, + "duration": 310, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51094,9 +58867,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:fb5fddc4-92aa-426a-b3cd-a4636f186ef0", + "_testId": "urn:uuid:fd3f7925-6c1e-4b1d-8f14-d58229c8a520", "cell": { "columnId": "VC Issuer Mock", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -51108,26 +58881,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108388, + "_idleStart": 77143, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 129, + "duration": 114, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51137,9 +58907,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:7fb4b852-cd6b-431e-a56d-77c1d06b58e7", + "_testId": "urn:uuid:11300440-41e2-4ecc-8236-1bb26d9ced46", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -51151,19 +58921,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108517, + "_idleStart": 77257, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 125, + "duration": 267, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, @@ -51180,9 +58947,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:d8c3e772-8c5d-423c-b1f9-16018257a949", + "_testId": "urn:uuid:f56c40d7-b469-42c1-a684-871aa92147de", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -51194,19 +58961,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108642, + "_idleStart": 77525, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 449, + "duration": 389, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51216,9 +58983,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:e12868d1-00b0-4815-9747-42c784017c6f", + "_testId": "urn:uuid:43ac2ac7-e63b-44b4-bb47-0b2010bbde81", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each refreshService value MUST specify its type." @@ -51230,12 +58997,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109091, + "_idleStart": 77914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 85, "state": "passed", "speed": "slow" }, @@ -51252,9 +59019,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:9353b211-1dc5-41bb-8ab4-f876c18848ef", + "_testId": "urn:uuid:68f925f0-5f4f-40d5-94c4-9761bc39631b", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -51266,19 +59033,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109223, + "_idleStart": 77999, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 327, + "duration": 111, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51288,9 +59055,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:e6e1fa59-3b19-40ea-8916-2cce83d19ed6", + "_testId": "urn:uuid:4acea720-2446-410f-bc5c-caf63c30d35a", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -51302,12 +59069,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109550, + "_idleStart": 78110, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 625, + "duration": 275, "state": "passed", "speed": "slow" }, @@ -51324,9 +59091,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:4384a3e8-46c9-43c4-b893-f9f1559c36e8", + "_testId": "urn:uuid:4e81b6fa-2414-47ff-83e4-4fab18f75e6e", "cell": { "columnId": "VC Issuer Mock", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -51338,12 +59105,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 110175, + "_idleStart": 78385, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 111, "state": "passed", "speed": "slow" }, @@ -51360,9 +59127,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:c651b40a-7311-4896-966d-12213976987e", + "_testId": "urn:uuid:112a35ac-2151-4219-9d8a-58daa4bc4f9d", "cell": { "columnId": "VC Issuer Mock", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -51375,7 +59142,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 110311, + "_idleStart": 78496, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -51403,7 +59170,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -51422,9 +59189,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "ZHLO5H-vYtq1GVQPJ4wBv", + "parent": "pBLo192pw7sih9NsjePC6", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "_testId": "urn:uuid:10cc0f5b-5ad6-4c9b-adc1-5d52714d9c98" + "_testId": "urn:uuid:6fc0fe0f-ffed-4093-a0b6-1eeb7792ba65" } ], "root": false, @@ -51440,13 +59207,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "z3JF5ZdoyvssK9SE13hed", + "parent": "Em_potGV9x3J1q1WK1tY4", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:f7d44359-cc8d-43f3-813d-dc8f37cce5f1", + "_testId": "urn:uuid:c0480d50-8f03-46d0-855d-245f5b485141", "columns": [ "ACA-py", "apicatalog.com", @@ -51464,7 +59231,7 @@ { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51474,9 +59241,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:925cc00f-7e8d-451f-ac6c-74685e6bccbc", + "_testId": "urn:uuid:1c08cf98-2e78-4246-ae4e-fd38cda29cac", "cell": { "columnId": "ACA-py", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51488,19 +59255,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99754, + "_idleStart": 68923, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 116, "state": "passed", "speed": "slow" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51510,9 +59277,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:07d6e3ea-dfaf-4245-b592-6d306a1c6a7d", + "_testId": "urn:uuid:6f2a916e-9a1d-464e-b0c6-b38b01af6fa2", "cell": { "columnId": "apicatalog.com", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51524,19 +59291,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100132, + "_idleStart": 69290, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 176, + "duration": 67, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51546,9 +59313,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:08bf0419-1229-40c5-839b-0b3bdf9ea102", + "_testId": "urn:uuid:fc1cf075-c4bc-4445-86b5-65384dd779f1", "cell": { "columnId": "Digital Bazaar", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51560,19 +59327,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102590, + "_idleStart": 71781, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 300, + "duration": 289, "state": "passed", "speed": "slow" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51582,9 +59349,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:e03491bb-5772-4ada-84bb-4a42558acac7", + "_testId": "urn:uuid:13cae3c0-13fb-44cc-a197-38cb424888de", "cell": { "columnId": "OpSecId", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51596,19 +59363,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103895, + "_idleStart": 73108, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 105, "state": "passed", "speed": "slow" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51618,9 +59385,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:f69d690e-0081-4a3f-97fc-c62bf3a7651f", + "_testId": "urn:uuid:b092c3f0-46d7-4da7-863c-ea4979c13261", "cell": { "columnId": "Procivis One Core", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51632,19 +59399,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104899, + "_idleStart": 73423, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 676, + "duration": 776, "state": "passed", "speed": "slow" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51654,9 +59421,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:5b216438-8e6e-415f-bff9-4f7956231d5e", + "_testId": "urn:uuid:56580c58-0920-44ce-b34c-9aac8f074a0b", "cell": { "columnId": "SpruceID", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51668,19 +59435,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106942, + "_idleStart": 75910, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, + "duration": 125, "state": "passed", "speed": "slow" }, { "type": "test", "title": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC containing a redefiled protected term.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#data-schemas:~:text=When%20processing%20the%20active%20context%20defined%20by%20the%20base%20JSON%2DLD%20Context%20document%20defined%20in%20this%20specification%2C%20compliant%20JSON%2DLD%2Dbased%20processors%20produce%20an%20error%20when%20a%20JSON%2DLD%20context%20redefines%20any%20term.`;\n // This depends on \"@protected\" (which is used for the base context).\n // FIXME: the fixture below would also fail for missing\n // `credentialSchema.type`\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')),\n\n 'Failed to reject a VC which redefines the `VerifiableCredential` ' +\n 'type.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')),\n\n 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51690,9 +59457,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:6d59a8c4-3238-4991-9c20-ebb58a0475e9", + "_testId": "urn:uuid:b2a75db7-23e5-48b6-9337-e2149556ad1d", "cell": { "columnId": "VC Issuer Mock", "rowId": "When processing the active context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based processors produce an error when a JSON-LD context redefines any term." @@ -51704,12 +59471,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107380, + "_idleStart": 76600, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 459, + "duration": 233, "state": "passed", "speed": "slow" } @@ -51722,7 +59489,7 @@ { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51732,9 +59499,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:eb10dc23-64fc-4940-b76a-dbb4e84c207a", + "_testId": "urn:uuid:40f67519-26b9-4ca5-8ab6-da496b4f7291", "cell": { "columnId": "ACA-py", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -51747,12 +59514,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99875, + "_idleStart": 69038, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -51870,7 +59637,7 @@ { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51880,9 +59647,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:221e58bc-637b-4f5a-9a56-e362943aabca", + "_testId": "urn:uuid:5649b8fb-110f-4685-8cd5-66d9c27b8990", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -51895,26 +59662,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100308, + "_idleStart": 69357, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 662, + "duration": 823, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51924,9 +59688,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:4b054dd5-efa8-497b-8143-c5db8fa89f1d", + "_testId": "urn:uuid:0fc2c96c-9d22-44ac-a1fb-52843d676b5f", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -51939,19 +59703,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102890, + "_idleStart": 72070, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 205, + "duration": 314, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51961,9 +59725,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:2bf880bc-165a-40e6-a35a-4db34961e9d8", + "_testId": "urn:uuid:605fb3bb-2bc6-4777-8f62-18fc33a7e1a4", "cell": { "columnId": "OpSecId", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -51976,19 +59740,128 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104029, + "_idleStart": 73213, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 192, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"relatedResource\":[{\"id\":\"https://w3c.github.io/vc-data-model/related-resource.json\",\"digestMultibase\":\"uZTQ0MjM1NiAgcmVwb3J0cy9yZWxhdGVkLXJlc291cmNlLmpzb24K\"},{\"id\":\"https://w3c.github.io/vc-data-model/related-resource.json\",\"digestSRI\":\"sha256-ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "relatedResource": [ + { + "id": "https://w3c.github.io/vc-data-model/related-resource.json", + "digestMultibase": "uZTQ0MjM1NiAgcmVwb3J0cy9yZWxhdGVkLXJlc291cmNlLmpzb24K" + }, + { + "id": "https://w3c.github.io/vc-data-model/related-resource.json", + "digestSRI": "sha256-ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -51998,9 +59871,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:56b51aec-1737-48d0-91d7-ff76ae84d62d", + "_testId": "urn:uuid:04db47aa-9ee1-4d99-ba87-31216b2fb7cd", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -52013,19 +59886,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 105576, + "_idleStart": 74199, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 346, + "duration": 395, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52035,9 +59908,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:6bb20ff4-c766-479d-83fe-23fa8e463be6", + "_testId": "urn:uuid:4b7e571f-a52e-49ea-b5ac-13a84ffe23ca", "cell": { "columnId": "SpruceID", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -52050,26 +59923,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107047, + "_idleStart": 76035, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 137, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The value of the relatedResource property MUST be one or more objects of the following form:", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20value%20of%20the%20relatedResource%20property%20MUST%20be%20one%20or%20more%20objects%20of%20the%20following%20form%3A`;\n this.test.cell.skipMessage = 'TBD';\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-ok.json'\n )), 'Failed to accept a VC with valid relatedResource objects.');\n await assert.doesNotReject(endpoints.issue(require(\n './input/relatedResource/relatedResource-with-mediaType-ok.json'\n )),\n 'Failed to accept a VC with valid relatedResource.mediaType values.');\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-list-of-strings-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource as an array of strings.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52079,9 +59949,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:5fa144fc-fa43-4814-b6cc-1d5814e07b99", + "_testId": "urn:uuid:63e2cf07-9f44-4bf4-b94a-94a61d864a3e", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the relatedResource property MUST be one or more objects of the following form:", @@ -52094,19 +59964,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107838, + "_idleStart": 76833, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 549, + "duration": 310, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -52119,7 +59986,7 @@ { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52129,9 +59996,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:a48bea97-428f-4845-a279-7d520c796ab6", + "_testId": "urn:uuid:62d1f610-d99a-4e4e-b9d3-184b986ce56d", "cell": { "columnId": "ACA-py", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52143,19 +60010,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99903, + "_idleStart": 69065, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 26, "state": "passed", "speed": "fast" }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52165,9 +60032,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:5d196134-c6b1-42fc-9377-f739d1057870", + "_testId": "urn:uuid:0053fdbf-da49-4281-a954-19454f7ab108", "cell": { "columnId": "apicatalog.com", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52179,26 +60046,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100971, + "_idleStart": 70181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 124, + "duration": 97, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52208,9 +60072,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:74cf8fc6-682d-456c-8bfb-f9544f7fb1e3", + "_testId": "urn:uuid:17dbb8bf-e122-4c42-bc29-a48e8446c452", "cell": { "columnId": "Digital Bazaar", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52222,26 +60086,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103095, + "_idleStart": 72384, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 86, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52251,9 +60112,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:25672c92-6190-4575-845f-b22ab161c5b0", + "_testId": "urn:uuid:175d5161-1ecf-4269-b8db-9f73966adc47", "cell": { "columnId": "OpSecId", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52265,19 +60126,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104222, + "_idleStart": 73237, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 68, + "duration": 22, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52287,9 +60148,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:da381903-ff62-4313-9a5b-565005580507", + "_testId": "urn:uuid:a1a8f42b-14eb-47a4-8c50-aa5c122468ab", "cell": { "columnId": "Procivis One Core", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52301,19 +60162,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 105923, + "_idleStart": 74594, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 115, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52323,9 +60184,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:867b209f-d06b-4a7d-af48-ec76217f89a2", + "_testId": "urn:uuid:9aac984a-ed06-4ac6-b7ad-4a2c0736c5ae", "cell": { "columnId": "SpruceID", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52337,26 +60198,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107133, + "_idleStart": 76172, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 49, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=The%20identifier%20for%20the%20resource%20is%20REQUIRED%20and%20conforms%20to%20the%20format%20defined%20in%20Section%204.4%20Identifiers.%20The%20value%20MUST%20be%20unique%20among%20the%20list%20of%20related%20resource%20objects.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-missing-id-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no `id` field.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52366,9 +60224,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:fb5fddc4-92aa-426a-b3cd-a4636f186ef0", + "_testId": "urn:uuid:fd3f7925-6c1e-4b1d-8f14-d58229c8a520", "cell": { "columnId": "VC Issuer Mock", "rowId": "The identifier for the resource is REQUIRED and conforms to the format defined in Section 4.4 Identifiers. The value MUST be unique among the list of related resource objects." @@ -52380,19 +60238,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108388, + "_idleStart": 77143, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 129, + "duration": 114, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -52405,7 +60260,7 @@ { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52415,9 +60270,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:044c5e49-1674-405d-b3eb-04cf2af398de", + "_testId": "urn:uuid:7303cfbd-ea0d-4826-b074-99358ed230b1", "cell": { "columnId": "ACA-py", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52429,19 +60284,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99930, + "_idleStart": 69092, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 33, + "duration": 26, "state": "passed", "speed": "fast" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52451,9 +60306,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:13210a7c-6664-4428-baed-2ccb1b7f55d5", + "_testId": "urn:uuid:5b14d213-10d5-44f4-aad1-be3d3ca31070", "cell": { "columnId": "apicatalog.com", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52465,26 +60320,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101095, + "_idleStart": 70278, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 174, + "duration": 99, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52494,9 +60346,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:19984ac2-71c7-4b9e-b2c0-f589fd4d6e2c", + "_testId": "urn:uuid:b2cbe8b1-9b09-4a53-acb5-8c0a6b8dd140", "cell": { "columnId": "Digital Bazaar", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52508,26 +60360,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103167, + "_idleStart": 72470, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 100, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52537,9 +60386,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:9b76966e-6110-42ad-a13b-205450cbbdef", + "_testId": "urn:uuid:a881bd11-79c8-49f1-a6d1-6dc5bfa7e867", "cell": { "columnId": "OpSecId", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52551,19 +60400,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104291, + "_idleStart": 73260, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 23, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52573,9 +60422,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:088679a8-b7fb-4fe6-be86-19e2842e07d8", + "_testId": "urn:uuid:804ff75e-2bd3-40ef-b1ca-0da3ac364934", "cell": { "columnId": "Procivis One Core", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52587,19 +60436,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106023, + "_idleStart": 74709, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 122, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52609,9 +60458,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:c50f20a8-c88c-4424-b94e-b977342f0c7a", + "_testId": "urn:uuid:78f80b5a-a390-4c50-a13d-ec2ae66ac1eb", "cell": { "columnId": "SpruceID", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52623,26 +60472,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107162, + "_idleStart": 76221, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 54, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n {name: 'HTTPError'},\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#integrity-of-related-resources:~:text=Each%20object%20associated%20with%20relatedResource%20MUST%20contain%20at%20least%20a%20digestSRI%20or%20a%20digestMultibase%20value.`;\n await assert.rejects(endpoints.issue(require(\n './input/relatedResource/relatedResource-no-digest-fail.json'\n )),\n\n 'Failed to reject a VC with a relatedResource with no digest info.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -52652,9 +60498,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:7fb4b852-cd6b-431e-a56d-77c1d06b58e7", + "_testId": "urn:uuid:11300440-41e2-4ecc-8236-1bb26d9ced46", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each object associated with relatedResource MUST contain at least a digestSRI or a digestMultibase value." @@ -52666,19 +60512,16 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108517, + "_idleStart": 77257, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 125, + "duration": 267, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } } @@ -52701,9 +60544,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:8653bcd5-06e4-4e3e-b8ac-9933dc2cae62", + "_testId": "urn:uuid:4ebc943b-7ba5-4f37-ab82-ac691b18584e", "cell": { "columnId": "ACA-py", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -52715,12 +60558,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99963, + "_idleStart": 69118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -52842,9 +60685,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:99caaf7e-85ab-49a0-b577-df4065dc42d0", + "_testId": "urn:uuid:02da8ea6-ceb2-4923-aa59-49e502e52569", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -52856,12 +60699,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101269, + "_idleStart": 70378, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 594, + "duration": 325, "state": "passed", "speed": "slow" }, @@ -52878,9 +60721,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:865e757e-2ae1-474f-9e08-24c5d50ee93e", + "_testId": "urn:uuid:8f190d92-a370-4b27-8846-0d36dca5b5a5", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -52892,12 +60735,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103250, + "_idleStart": 72570, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 226, + "duration": 175, "state": "passed", "speed": "slow" }, @@ -52914,9 +60757,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:4c7006cc-b8c5-4ba9-9493-d196164ce3eb", + "_testId": "urn:uuid:1fe5e5f5-f439-43bd-9d41-2979421337be", "cell": { "columnId": "OpSecId", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -52928,14 +60771,117 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104361, + "_idleStart": 73283, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 151, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\"],\"type\":[\"VerifiableCredential\"],\"refreshService\":{\"type\":\"https://example.org/#ExampleTestSuiteRefreshService\",\"id\":\"did:example:refresh/1\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "type": [ + "VerifiableCredential" + ], + "refreshService": { + "type": "https://example.org/#ExampleTestSuiteRefreshService", + "id": "did:example:refresh/1" + }, + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -52950,9 +60896,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:e082ef31-cb67-41e4-981b-296726c6955e", + "_testId": "urn:uuid:5d26cec8-4c99-46e1-bfe8-ed195d7d0089", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -52964,12 +60910,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106129, + "_idleStart": 74831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 245, + "duration": 288, "state": "passed", "speed": "slow" }, @@ -52986,9 +60932,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:002cf4b9-108b-4eb3-a5d5-95237aa94f65", + "_testId": "urn:uuid:66bb3d16-8a15-4a15-9a18-7c9a882ea898", "cell": { "columnId": "SpruceID", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -53000,14 +60946,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107190, + "_idleStart": 76275, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 55, + "duration": 94, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", @@ -53022,9 +60968,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:d8c3e772-8c5d-423c-b1f9-16018257a949", + "_testId": "urn:uuid:f56c40d7-b469-42c1-a684-871aa92147de", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the refreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential." @@ -53036,12 +60982,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 108642, + "_idleStart": 77525, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 449, + "duration": 389, "state": "passed", "speed": "slow" } @@ -53054,7 +61000,7 @@ { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53064,9 +61010,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:1f96ee54-42dd-4ec1-a49a-14ac10962de6", + "_testId": "urn:uuid:fa445797-68f1-4d37-b784-6d5072279f78", "cell": { "columnId": "ACA-py", "rowId": "Each refreshService value MUST specify its type." @@ -53078,19 +61024,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 99992, + "_idleStart": 69145, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 27, "state": "passed", "speed": "fast" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53100,9 +61046,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:1ff56a0c-8d12-4fb1-a493-e76a4b2f979b", + "_testId": "urn:uuid:972a2b09-aa3f-4c48-b0fe-f766f86e4d23", "cell": { "columnId": "apicatalog.com", "rowId": "Each refreshService value MUST specify its type." @@ -53114,26 +61060,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 101862, + "_idleStart": 70703, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 202, + "duration": 275, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53143,9 +61086,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:12fc3c33-d1fd-49c3-a456-568788496555", + "_testId": "urn:uuid:3bb30e1a-7c6c-4ad9-9429-bb1cb298c538", "cell": { "columnId": "Digital Bazaar", "rowId": "Each refreshService value MUST specify its type." @@ -53157,19 +61100,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103477, + "_idleStart": 72745, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, + "duration": 45, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53179,9 +61122,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:17da7d5e-8ca8-46f6-814a-3025650739dc", + "_testId": "urn:uuid:143f8d3d-e9db-4e68-b663-a76222c31b33", "cell": { "columnId": "OpSecId", "rowId": "Each refreshService value MUST specify its type." @@ -53193,19 +61136,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104512, + "_idleStart": 73306, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 69, + "duration": 23, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53215,9 +61158,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:dd0004f8-8ed9-4179-a4d6-6bdeea3f806e", + "_testId": "urn:uuid:b0287c12-8d52-4f0c-9d1c-30e482a7028a", "cell": { "columnId": "Procivis One Core", "rowId": "Each refreshService value MUST specify its type." @@ -53229,19 +61172,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106374, + "_idleStart": 75119, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 116, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53251,9 +61194,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:093460af-eddc-40bc-a7a3-a771a07971d7", + "_testId": "urn:uuid:bc57281b-43e6-4a5b-a661-084a268e4ec9", "cell": { "columnId": "SpruceID", "rowId": "Each refreshService value MUST specify its type." @@ -53265,19 +61208,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107245, + "_idleStart": 76370, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 22, + "duration": 42, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", "title": "Each refreshService value MUST specify its type.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n {name: 'HTTPError'},\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.`;\n // TODO: like the above, this does not test the statement, only that\n // an issuer will fail on someone else's provided and broken\n // `refreshService` value\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')),\n\n 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53287,9 +61230,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:e12868d1-00b0-4815-9747-42c784017c6f", + "_testId": "urn:uuid:43ac2ac7-e63b-44b4-bb47-0b2010bbde81", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each refreshService value MUST specify its type." @@ -53301,12 +61244,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109091, + "_idleStart": 77914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 85, "state": "passed", "speed": "slow" } @@ -53329,9 +61272,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:ec1e4198-571f-4ade-a887-a5ef2fe9a944", + "_testId": "urn:uuid:42b27d70-15b3-4296-b932-bb0dcc9f2ad6", "cell": { "columnId": "ACA-py", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53343,12 +61286,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100021, + "_idleStart": 69173, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 31, "state": "failed", "err": { "generatedMessage": false, @@ -53477,9 +61420,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:86dfd765-8bae-4335-bd96-1a06a33e18eb", + "_testId": "urn:uuid:3e97f436-edba-481b-a7db-3230ced78fe6", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53491,12 +61434,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102065, + "_idleStart": 70979, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 202, + "duration": 302, "state": "passed", "speed": "slow" }, @@ -53513,9 +61456,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:bbaf3c24-9ca1-4723-ad29-f9f06bbebcf8", + "_testId": "urn:uuid:b17cc246-6b35-4b3e-9e5d-518c9c16d275", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53527,12 +61470,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103587, + "_idleStart": 72790, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 98, "state": "passed", "speed": "slow" }, @@ -53549,9 +61492,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:8847b84c-5d6c-45c6-aedd-9b36cc5b61fe", + "_testId": "urn:uuid:fb92e928-5487-40c6-8c75-eaf94e769c37", "cell": { "columnId": "OpSecId", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53563,14 +61506,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104581, + "_idleStart": 73330, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 93, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":[{\"type\":\"OdrlPolicy2017\"},{\"type\":\"OdrlPolicy2017\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": [ + { + "type": "OdrlPolicy2017" + }, + { + "type": "OdrlPolicy2017" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -53585,9 +61638,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:2479b0ef-4858-4dd1-b8b0-366be12c714c", + "_testId": "urn:uuid:ee627cac-f3c0-42de-8f7a-1af482510192", "cell": { "columnId": "Procivis One Core", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53599,12 +61652,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106474, + "_idleStart": 75235, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 220, "state": "passed", "speed": "slow" }, @@ -53621,9 +61674,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:a7acc22c-9f8d-4a82-a194-94b60f07f3e2", + "_testId": "urn:uuid:0dcc6402-5306-4352-98fe-d408552c5532", "cell": { "columnId": "SpruceID", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53635,14 +61688,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107268, + "_idleStart": 76412, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 46, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -53657,9 +61710,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:9353b211-1dc5-41bb-8ab4-f876c18848ef", + "_testId": "urn:uuid:68f925f0-5f4f-40d5-94c4-9761bc39631b", "cell": { "columnId": "VC Issuer Mock", "rowId": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation." @@ -53671,12 +61724,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109223, + "_idleStart": 77999, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 327, + "duration": 111, "state": "passed", "speed": "slow" } @@ -53689,7 +61742,7 @@ { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53699,9 +61752,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:310ca933-d848-42b0-82c6-40b5da5a4307", + "_testId": "urn:uuid:75adaeaa-bb48-404c-9b94-7e2c03ffb5c8", "cell": { "columnId": "ACA-py", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -53713,12 +61766,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100048, + "_idleStart": 69203, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 55, + "duration": 59, "state": "failed", "err": { "generatedMessage": false, @@ -53833,7 +61886,7 @@ { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53843,9 +61896,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:3e4ae084-7f3c-4775-87ce-1123574765d1", + "_testId": "urn:uuid:cf8daf07-6137-4feb-a6cb-271f85757950", "cell": { "columnId": "apicatalog.com", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -53857,26 +61910,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102268, + "_idleStart": 71282, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 194, + "duration": 300, "state": "failed", "err": { "generatedMessage": false, "code": "ERR_ASSERTION", - "expected": { - "name": "HTTPError" - }, "operator": "rejects" } }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53886,9 +61936,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:ddd62d70-6ca4-487b-80a6-914114a9637c", + "_testId": "urn:uuid:4d91ab35-c17d-422e-b166-8e74c7960af9", "cell": { "columnId": "Digital Bazaar", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -53900,19 +61950,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103680, + "_idleStart": 72889, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 135, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53922,9 +61972,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:6aad091d-8213-4184-a166-462a2e0eb5c5", + "_testId": "urn:uuid:89c0d512-bd03-4741-9401-c8b8088dfd71", "cell": { "columnId": "OpSecId", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -53936,19 +61986,125 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104675, + "_idleStart": 73353, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 146, - "state": "passed", - "speed": "slow" + "duration": 46, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"OdrlPolicy2017\":\"https://example.org/examples#OdrlPolicy2017\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"termsOfUse\":{\"type\":\"OdrlPolicy2017\",\"id\":\"did:example:terms/1\"},\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "OdrlPolicy2017": "https://example.org/examples#OdrlPolicy2017" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "termsOfUse": { + "type": "OdrlPolicy2017", + "id": "did:example:terms/1" + }, + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53958,9 +62114,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:6770c48c-1906-4281-a71d-2ffd8f22f765", + "_testId": "urn:uuid:8fbeb8cc-2c06-4838-8820-019f34829bec", "cell": { "columnId": "Procivis One Core", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -53972,19 +62128,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106595, + "_idleStart": 75456, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 221, + "duration": 280, "state": "passed", "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -53994,9 +62150,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:44c0c1ab-ad75-4817-99e0-ab87bc50e6e7", + "_testId": "urn:uuid:9810dbf4-1627-4e13-a85e-8148ded41d8e", "cell": { "columnId": "SpruceID", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -54008,19 +62164,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107297, + "_idleStart": 76458, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 53, + "duration": 90, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", "title": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')),\n {name: 'HTTPError'});\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20termsOfUse%20value%20MUST%20specify%20its%20type%2C%20for%20example%2C%20IssuerPolicy%2C%20and%20MAY%20specify%20its%20instance%20id.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-no-type-fail.json')));\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuse-id-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -54030,9 +62186,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:e6e1fa59-3b19-40ea-8916-2cce83d19ed6", + "_testId": "urn:uuid:4acea720-2446-410f-bc5c-caf63c30d35a", "cell": { "columnId": "VC Issuer Mock", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -54044,12 +62200,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 109550, + "_idleStart": 78110, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 625, + "duration": 275, "state": "passed", "speed": "slow" } @@ -54072,9 +62228,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:945e2e39-28e7-42da-8273-1b45d696fe91", + "_testId": "urn:uuid:55cb53d1-0826-41d4-a9df-16d839d7079e", "cell": { "columnId": "ACA-py", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54086,12 +62242,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100104, + "_idleStart": 69263, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 26, "state": "failed", "err": { "generatedMessage": false, @@ -54220,9 +62376,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:85590050-d1dd-44d6-a330-2b18c95eb4b0", + "_testId": "urn:uuid:1994b878-df27-4f19-a28a-208d47589d18", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54234,12 +62390,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102462, + "_idleStart": 71583, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 198, "state": "passed", "speed": "slow" }, @@ -54256,9 +62412,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:345c5608-9f59-49b2-b7df-edf9a5996923", + "_testId": "urn:uuid:c729f970-09b5-4f12-b64d-0a91531592b8", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54270,12 +62426,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103796, + "_idleStart": 73023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 99, + "duration": 84, "state": "passed", "speed": "slow" }, @@ -54292,9 +62448,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:7f4485b9-10aa-438a-aaed-b0f54274791c", + "_testId": "urn:uuid:96eb9f42-e78c-4846-9667-50e747bd8b16", "cell": { "columnId": "OpSecId", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54306,14 +62462,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104821, + "_idleStart": 73399, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 78, - "state": "passed", - "speed": "slow" + "duration": 23, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"credential\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"DocumentVerification2018\":\"https://example.org/examples#DocumentVerification2018\"}],\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:example:subject\"},\"evidence\":[{\"type\":\"DocumentVerification2018\"},{\"type\":\"DocumentVerification2018\"}],\"issuer\":\"did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu\"},\"options\":{\"type\":\"DataIntegrityProof\",\"cryptosuite\":\"eddsa-jcs-2022\"}}", + "method": "POST", + "json": { + "credential": { + "@context": [ + "https://www.w3.org/ns/credentials/v2", + { + "DocumentVerification2018": "https://example.org/examples#DocumentVerification2018" + } + ], + "type": [ + "VerifiableCredential" + ], + "credentialSubject": { + "id": "did:example:subject" + }, + "evidence": [ + { + "type": "DocumentVerification2018" + }, + { + "type": "DocumentVerification2018" + } + ], + "issuer": "did:key:z6MkwMaVueYP9pYSTKxtRSMzgzsSkpx1wrhwdq8MEHFxtHdu" + }, + "options": { + "type": "DataIntegrityProof", + "cryptosuite": "eddsa-jcs-2022" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/issue", + "status": 404 + }, + "operator": "doesNotReject" + } }, { "type": "test", @@ -54328,9 +62594,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:5450859b-3de6-4ec3-953d-3feba87ee355", + "_testId": "urn:uuid:665783d3-fb0e-44ca-928b-deb19bec54e1", "cell": { "columnId": "Procivis One Core", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54342,12 +62608,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106816, + "_idleStart": 75736, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 125, + "duration": 174, "state": "passed", "speed": "slow" }, @@ -54364,9 +62630,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:100758bb-cc82-48bf-aa63-7e823bdf20a4", + "_testId": "urn:uuid:462a2289-394c-4a6a-8817-ea41c8d8bb3b", "cell": { "columnId": "SpruceID", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54378,14 +62644,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107351, + "_idleStart": 76549, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, + "duration": 50, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -54400,9 +62666,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:4384a3e8-46c9-43c4-b893-f9f1559c36e8", + "_testId": "urn:uuid:4e81b6fa-2414-47ff-83e4-4fab18f75e6e", "cell": { "columnId": "VC Issuer Mock", "rowId": "If present, the value associated with the evidence property is a single object or a set of one or more objects." @@ -54414,12 +62680,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 110175, + "_idleStart": 78385, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 111, "state": "passed", "speed": "slow" } @@ -54442,9 +62708,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "3lIqU_I0oze4nsH23Skfy", + "parent": "tolMB_vCA1jvTukmPT_Xe", "ctx": null, - "_testId": "urn:uuid:448f6f15-c70a-4481-bc12-f512a128d3a4", + "_testId": "urn:uuid:8b32c963-73ae-4ec8-9bb1-9628cbaed87a", "cell": { "columnId": "ACA-py", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54457,7 +62723,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 100132, + "_idleStart": 69290, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54481,9 +62747,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "kLOGjF_PJ8v7iD2OGZ-mR", + "parent": "b4pLXASqkc_dHDjdIU7RQ", "ctx": null, - "_testId": "urn:uuid:c5c6d05b-6b6a-42a2-9b34-94b4d1e10d70", + "_testId": "urn:uuid:4a37dbbf-d0de-4ee2-a4b1-24fbab05d8e2", "cell": { "columnId": "apicatalog.com", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54496,12 +62762,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 102589, + "_idleStart": 71781, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "pending", "err": { "message": "TBD" @@ -54520,9 +62786,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "RVGIPAW0iD7E0kzHxTzsz", + "parent": "l5QSaG2LOSeg-IDTgS-NF", "ctx": null, - "_testId": "urn:uuid:74669f65-0f25-481a-b2ef-2104d622bfe8", + "_testId": "urn:uuid:dd53398d-a922-4b3e-a072-95a7d5b366b4", "cell": { "columnId": "Digital Bazaar", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54535,7 +62801,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 103895, + "_idleStart": 73107, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54559,9 +62825,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "gegzKf7-PbhrHo1votJMA", + "parent": "yBdCXbJU3omT0DGjtvSjB", "ctx": null, - "_testId": "urn:uuid:31f00300-5a82-43ac-ae99-e61d63e69a4e", + "_testId": "urn:uuid:9bd9f012-6c06-413d-a49d-b66f5fd08c41", "cell": { "columnId": "OpSecId", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54574,7 +62840,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 104899, + "_idleStart": 73423, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54598,9 +62864,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "-efE_wg8ZK2QpZ0-uqhtq", + "parent": "kVmakGUb-7PbmhPVRpom3", "ctx": null, - "_testId": "urn:uuid:06c5d1d9-0f10-4260-a242-e8df54e2a3d9", + "_testId": "urn:uuid:c2284703-500b-4828-8a51-4359ef34b755", "cell": { "columnId": "Procivis One Core", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54613,7 +62879,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 106941, + "_idleStart": 75910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54637,9 +62903,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "lyfOvDGX28GAFGFLGFvFQ", + "parent": "yZt31pj3ZVu3zTddO2ip-", "ctx": null, - "_testId": "urn:uuid:44542a99-3b9e-4dd3-9759-9f1b1aec31e0", + "_testId": "urn:uuid:41ae8768-ec6e-4bd1-8015-1203f35cfc59", "cell": { "columnId": "SpruceID", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54652,7 +62918,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 107379, + "_idleStart": 76600, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54676,9 +62942,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/50-advanced-concepts.js", - "parent": "095ctKT66BdOfaImA9YBW", + "parent": "AUks0hdLRHezgXajwLiOI", "ctx": null, - "_testId": "urn:uuid:c651b40a-7311-4896-966d-12213976987e", + "_testId": "urn:uuid:112a35ac-2151-4219-9d8a-58daa4bc4f9d", "cell": { "columnId": "VC Issuer Mock", "rowId": "In order to avoid collisions regarding how the following properties are used, implementations MUST specify a type property in the value associated with the reserved property.", @@ -54691,7 +62957,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 110311, + "_idleStart": 78496, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -54714,6 +62980,33 @@ "At least 2 passing implementations" ], "rows": [ + { + "id": "Verifiable Presentation `@context`: \"Subsequent items in the ordered set MUST be composed of any combination of URLs and/or objects where each is processable as a JSON-LD Context.\"", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=Subsequent%20items%20in%20the%20ordered%20set%20MUST%20be%20composed%20of%20any%20combination%20of%20URLs%20and/or%20objects%2C%20where%20each%20is%20processable%20as%20a%20JSON%2DLD%20Context.", + "cells": [ + { + "state": "failed" + } + ] + }, + { + "id": "The type property MUST be present. One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20type%20property%20MUST%20be%20present.%20It%20is%20used%20to%20express%20the%20type%20of%20verifiable%20presentation.%20One%20value%20of%20this%20property%20MUST%20be%20VerifiablePresentation%2C%20but%20additional%20types%20MAY%20be%20included.%20The%20related%20normative%20guidance%20in%20Section%204.5%20Types%20MUST%20be%20followed.", + "cells": [ + { + "state": "failed" + } + ] + }, + { + "id": "The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "link": "https://w3c.github.io/vc-data-model/#verifiable-presentations:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).", + "cells": [ + { + "state": "failed" + } + ] + }, { "id": "The @context property of the object MUST be present and include a context, such as the base context for this specification, that defines at least the id, type, and EnvelopedVerifiableCredential terms as defined by the base context provided by this specification.", "link": "https://w3c.github.io/vc-data-model/#enveloped-verifiable-credentials:~:text=The%20%40context%20property%20of%20the%20object%20MUST%20be%20present%20and%20include%20a%20context%2C%20such%20as%20the%20base%20context%20for%20this%20specification%2C%20that%20defines%20at%20least%20the%20id%2C%20type%2C%20and%20EnvelopedVerifiableCredential%20terms%20as%20defined%20by%20the%20base%20context%20provided%20by%20this%20specification.", @@ -54775,9 +63068,9 @@ }, "title": "VC v2.0 Interoperability Report", "stats": [ - "Tests passed 275/372 73%", - "Tests failed 97/372 27%", - "Failures 97", + "Tests passed 232/372 62%", + "Tests failed 140/372 38%", + "Failures 140", "Tests skipped 76", "Total tests 448" ],