diff --git a/index.html b/index.html index e7a72c0..9dfba62 100644 --- a/index.html +++ b/index.html @@ -83,6 +83,89 @@ + +

@@ -97,36 +180,63 @@

Conformance Testing Results

- Tests passed 133/156 85% + Tests passed 147/180 81%

- Tests failed 23/156 15% + Tests failed 33/180 19%

- Failures 23 + Failures 33

Tests skipped 52

- Total tests 208 + Total tests 232

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

Key

-
    -
  • - ✓ - Success -
  • -
  • - ❌ - Error -
  • -
  • - — - Implementation explicitly does not support this feature -
  • -
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
🚫
+
Pending
+
+
Passed
+
+
Failed
+
+
Access Denied
+
+
Timeout
+
+
Not Implemented

@@ -137,53 +247,6 @@

Key

Basic Conformance

-
@@ -203,134 +266,28 @@

Basic Conformance

- + - - - + + + @@ -348,53 +305,6 @@

Basic Conformance

Contexts

-
verifiers MUST produce errors when non-conforming documents are detected. + verifiers MUST produce errors when non-conforming documents are detected. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
@@ -414,666 +324,136 @@

Contexts

- + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + @@ -1091,53 +471,6 @@

Contexts

Identifiers

-
Verifiable credentials MUST include a @context property. + Verifiable credentials MUST include a @context property. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
Verifiable presentations MUST include a @context property. + Verifiable presentations MUST include a @context property. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
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. + 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. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
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. + 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. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
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." + 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." +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
@@ -1157,134 +490,28 @@

Identifiers

- + - - - + + + @@ -1302,53 +529,6 @@

Identifiers

Types

-
If present, the value of the id property MUST be a single URL, which MAY be dereferenceable. + If present, the value of the id property MUST be a single URL, which MAY be dereferenceable. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
@@ -1368,701 +548,376 @@

Types

- + - - - + + + - + - - - + + + - + - + - + - + - - - + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2080,53 +935,6 @@

Types

Names and Descriptions

-
Verifiable credentials MUST contain a type property with an associated value. + Verifiable credentials MUST contain a type property with an associated value. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
Verifiable presentations MUST contain a type property with an associated value. + Verifiable presentations MUST contain a type property with an associated value. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
The value of the type property MUST be one or more terms and/or absolute URL strings. + The value of the type property MUST be one or more terms and/or absolute URL strings. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:220:9)"
-                    }
-
-
-
-
-
- +
+ 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/10-vcdm2.js:253:9)
+
+
+
+
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:220:9)"
-                    }
-
-
-
-
-
- +
+ 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/10-vcdm2.js:253:9)
+
+
+
+
+
If more than one (type) value is provided, the order does not matter. + If more than one (type) value is provided, the order does not matter. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verifiable Credential objects MUST have a type specified. + +
+
+
+
+
+
+
+
+
+
+
+
+
+
VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are "objects that MUST have a type specified." + Verifiable Presentation objects MUST have a type specified. +
- - -
{
-                      "name": "HTTPError",
-                      "message": "Request failed with status code 400 Bad Request",
-                      "stack": "HTTPError: Request failed with status code 400 Bad Request\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    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)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:255:9)"
-                    }
-
+
+ Got unwanted rejection: Failed to accept VP with `@context` mapped type. + Actual message: "Request failed with status code 400 Bad Request": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept VP with `@context` mapped type.
+                    Actual message: "Request failed with status code 400 Bad Request"
+                        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/10-vcdm2.js:291:11)
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:275:9)"
-                    }
-
+
+ Got unwanted rejection: Failed to accept VP with `@context` mapped type. + Actual message: "Authorization error.": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept VP with `@context` mapped type.
+                    Actual message: "Authorization error."
+                        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/10-vcdm2.js:291:11)
+
- - -
{
-                      "name": "HTTPError",
-                      "message": "Request failed with status code 500 Internal Server Error",
-                      "stack": "HTTPError: Request failed with status code 500 Internal Server Error\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    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)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:255:9)"
-                    }
-
-
-
-
-
- +
+ Got unwanted rejection: Failed to accept VP with `@context` mapped type. + Actual message: "Request failed with status code 500 Internal Server Error": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept VP with `@context` mapped type.
+                    Actual message: "Request failed with status code 500 Internal Server Error"
+                        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/10-vcdm2.js:291:11)
+
+
+
+
+
+
+
+ `credentialStatus` objects MUST have a type specified. + +
+
+
+ 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/10-vcdm2.js:308:11)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `termsOfUse` objects MUST have a type specified. + +
+
+
+ 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/10-vcdm2.js:320:11)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `evidence` objects MUST have a type specified. + +
+
+
+ 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/10-vcdm2.js:332:11)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `refreshService` objects MUST have a type specified. + +
+
+
+ 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/10-vcdm2.js:343:11)
+
+
+
+
+
+
+ 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/10-vcdm2.js:343:11)
+
+
+
+
+
+
+
+
+
+
+
+ `credentialSchema` objects MUST have a type specified. + +
+
+
+ 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/10-vcdm2.js:354:11)
+
+
+
+
+
+
+ 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/10-vcdm2.js:354:11)
+
+
+
+
+
+
+
+
+
@@ -2146,561 +954,141 @@

Names and Descriptions

- + - - + + - + - - + + - + - - + + - + - - + + @@ -2718,53 +1106,6 @@

Names and Descriptions

Credential Subject

-
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. + 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. +
-
- - -
{
-                      "name": "HTTPError",
-                      "message": "An unspecified error occurred.",
-                      "stack": "HTTPError: An unspecified error occurred.\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    at async zcapRequest (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:83:14)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:310:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ Got unwanted rejection: Failed to accept a VC using `name` with language & direction expressed. + Actual message: "An unspecified error occurred.": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC using `name` with language & direction expressed.
+                    Actual message: "An unspecified error occurred."
+                        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/10-vcdm2.js:391:9)
+
+
+
+
+
+
+
+
+
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. + 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. +
-
- - -
{
-                      "name": "HTTPError",
-                      "message": "An unspecified error occurred.",
-                      "stack": "HTTPError: An unspecified error occurred.\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    at async zcapRequest (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:83:14)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:327:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ Got unwanted rejection: Failed to accept a VC using `description` with language & direction expressed. + Actual message: "An unspecified error occurred.": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC using `description` with language & direction expressed.
+                    Actual message: "An unspecified error occurred."
+                        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/10-vcdm2.js:415:9)
+
+
+
+
+
+
+
+
+
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. + 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. +
-
- - -
{
-                      "name": "HTTPError",
-                      "message": "An unspecified error occurred.",
-                      "stack": "HTTPError: An unspecified error occurred.\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    at async zcapRequest (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:83:14)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:347:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ Got unwanted rejection: Failed to accept a VC using `issuer.name` with language & direction expressed. + Actual message: "An unspecified error occurred.": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC using `issuer.name` with language & direction expressed.
+                    Actual message: "An unspecified error occurred."
+                        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/10-vcdm2.js:443:9)
+
+
+
+
+
+
+
+
+
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. + 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. +
-
- - -
{
-                      "name": "HTTPError",
-                      "message": "An unspecified error occurred.",
-                      "stack": "HTTPError: An unspecified error occurred.\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    at async zcapRequest (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:83:14)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:364:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ Got unwanted rejection: Failed to accept a VC using `issuer.description` with language & direction expressed. + Actual message: "An unspecified error occurred.": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC using `issuer.description` with language & direction expressed.
+                    Actual message: "An unspecified error occurred."
+                        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/10-vcdm2.js:469:9)
+
+
+
+
+
+
+
+
+
@@ -2784,274 +1125,61 @@

Credential Subject

- + - - - + + + - + - - - + + + @@ -3069,53 +1197,6 @@

Credential Subject

Issuer

-
A verifiable credential MUST have a credentialSubject property. + A verifiable credential MUST have a credentialSubject property. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property. + The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:396:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:508:9)
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3135,281 +1216,67 @@

Issuer

- + - - - + + + - + - - + + @@ -3427,53 +1294,6 @@

Issuer

Validity Period

-
A verifiable credential MUST have an issuer property. + A verifiable credential MUST have an issuer property. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL. + The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection: Failed to reject an issuer identifier that was not a URL.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject an issuer identifier that was not a URL.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:430:9)"
-                    }
-
+
+ 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/10-vcdm2.js:548:9)
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection: Failed to reject an issuer identifier that was not a URL.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject an issuer identifier that was not a URL.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:430:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:548:9)
+
+
+
+
+
+
+
+
+
@@ -3493,540 +1313,129 @@

Validity Period

- + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - + - - - @@ -4044,53 +1453,6 @@

Validity Period

Securing Mechanisms

-
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. + 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. + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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. + +
+
+
+ Got unwanted rejection: Failed to accept a VC with a valid `validUntil` date-time. + Actual message: "Expired": +
AssertionError [ERR_ASSERTION]: Got unwanted rejection: Failed to accept a VC with a valid `validUntil` date-time.
+                    Actual message: "Expired"
+                        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/10-vcdm2.js:596:9)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+ Missing expected rejection: Failed to reject a VC with a `validUntil` before its `validFrom`.: +
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a `validUntil` before its `validFrom`.
+                        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/10-vcdm2.js:634:9)
+
+
+
+
+
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. + 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. + -
+
+
- - -
{
-                      "name": "HTTPError",
-                      "message": "Expired",
-                      "stack": "HTTPError: Expired\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    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)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:474:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
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.
- -
-
-
-
- -
-
-
-
- -
-
-
-
-
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. +
+
+
+ Missing expected rejection: Failed to reject a VC with a `validUntil` before its `validFrom`.: +
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a `validUntil` before its `validFrom`.
+                        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/10-vcdm2.js:662:9)
+
+
+
- -
-
-
-
- -
-
-
-
- -
-
-
-
-
@@ -4110,400 +1472,82 @@

Securing Mechanisms

- + - - - + + + - + - - - + + + - + - - - + + + @@ -4521,53 +1565,6 @@

Securing Mechanisms

Status

-
A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms. + A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms. + A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected. + A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
@@ -4587,288 +1584,73 @@

Status

- + - - - + + + - + - + - + @@ -4886,53 +1668,6 @@

Status

Verifiable Presentations

-
If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed. + If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:630:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:771:9)
+
+
+
+
+
+
+
+
+
+
+
+
+
(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.4 Types MUST be followed. + (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.4 Types MUST be followed. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:638:9)"
-                    }
-
-
-
-
-
- +
+ 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/10-vcdm2.js:780:9)
+
+
+
+
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:640:9)"
-                    }
-
-
-
-
-
- +
+ Missing expected rejection: Failed to reject a VC with a non-URL `credentialStatus.type`.: +
AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject a VC with a non-URL `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/10-vcdm2.js:783:9)
+
+
+
+
+
@@ -4952,414 +1687,115 @@

Verifiable Presentations

- + - + - + - + - + @@ -5377,53 +1813,6 @@

Verifiable Presentations

VP - Enveloped Verifiable Credentials

-
If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed. + If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed. +
🚫
-
🚫
-
🚫
-
🚫
-
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.4 Types MUST be followed. + 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.4 Types MUST be followed. +
🚫
-
🚫
-
🚫
-
🚫
-
The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs). + The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs). +
- - -
{
-                      "name": "HTTPError",
-                      "message": "Request failed with status code 400 Bad Request",
-                      "stack": "HTTPError: Request failed with status code 400 Bad Request\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    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)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:698:9)"
-                    }
-
-
-
-
-
- +
+ Request failed with status code 400 Bad Request: +
HTTPError: Request failed with status code 400 Bad Request
+                        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:62:27)
+                        at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:843:9)
+
+
+
+
+
+
+ Authorization error.: +
HTTPError: Authorization error.
+                        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 zcapRequest (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:83: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:62:27)
+                        at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:843:9)
+
- - -
{
-                      "name": "HTTPError",
-                      "message": "Request failed with status code 500 Internal Server Error",
-                      "stack": "HTTPError: Request failed with status code 500 Internal Server Error\n    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)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    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)\n    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)\n    at async post (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:62:27)\n    at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:698:9)"
-                    }
-
-
-
-
-
- +
+ Request failed with status code 500 Internal Server Error: +
HTTPError: Request failed with status code 500 Internal Server Error
+                        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:62:27)
+                        at async TestEndpoints.verifyVp (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/TestEndpoints.js:50:20)
+                        at async Context.<anonymous> (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:843:9)
+
+
+
+
+
@@ -5443,400 +1832,82 @@

VP - Enveloped Verifiable Credentials

- + - + - + @@ -5854,53 +1925,6 @@

VP - Enveloped Verifiable Credentials

VP - Enveloped Verifiable Presentations

-
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. + 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. +
🚫
-
🚫
-
🚫
-
🚫
-
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]. + 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]. +
🚫
-
🚫
-
🚫
-
🚫
-
The type value of the object MUST be EnvelopedVerifiableCredential. + The type value of the object MUST be EnvelopedVerifiableCredential. +
🚫
-
🚫
-
🚫
-
🚫
-
@@ -5920,400 +1944,82 @@

VP - Enveloped Verifiable Presentations

- + - + - + @@ -6331,53 +2037,6 @@

VP - Enveloped Verifiable Presentations

VP - Presentations Including Holder Claims

-
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. + 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. +
🚫
-
🚫
-
🚫
-
🚫
-
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]. + 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]. +
🚫
-
🚫
-
🚫
-
🚫
-
The type value of the object MUST be EnvelopedVerifiablePresentation. + The type value of the object MUST be EnvelopedVerifiablePresentation. +
🚫
-
🚫
-
🚫
-
🚫
-
@@ -6397,267 +2056,55 @@

VP - Presentations Including Holder Claims

- + - + @@ -6675,53 +2122,6 @@

VP - Presentations Including Holder Claims

Data Schemas

-
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. + 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. +
🚫
-
🚫
-
🚫
-
🚫
-
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. + 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. +
🚫
-
🚫
-
🚫
-
🚫
-
@@ -6741,414 +2141,94 @@

Data Schemas

- + - - - + + + - + - - + + - + - - - + + + @@ -7166,53 +2246,6 @@

Data Schemas

Advanced Concepts

-
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). + 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). +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file. + Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection: Failed to reject credentialSchema without a `type`.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject credentialSchema without a `type`.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:852:9)"
-                    }
-
+
+ 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/10-vcdm2.js:1003:9)
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection: Failed to reject credentialSchema without a `type`.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection: Failed to reject credentialSchema without a `type`.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:852:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:1003:9)
+
+
+
+
+
+
+
+
+
If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property. + If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
@@ -7232,820 +2265,181 @@

Advanced Concepts

- + - - - + + + - + - - - + + + - + - - + + - + - - - + + + - + - - - + + + - + - - - + + + diff --git a/index.json b/index.json index aafe157..7a98767 100644 --- a/index.json +++ b/index.json @@ -21,14 +21,14 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nBIEFd2NIqLVbDFfMigS8", + "parent": "bbwOK2LpuhDnl69gfDJXp", "ctx": null, "state": "pending" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -38,9 +38,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nBIEFd2NIqLVbDFfMigS8", + "parent": "bbwOK2LpuhDnl69gfDJXp", "ctx": null, - "_testId": "urn:uuid:d8e50dab-92c0-477d-a4f5-493029230edc", + "_testId": "urn:uuid:3025abe6-230d-4c2a-bcc7-2a00bb45ce21", "cell": { "columnId": "apicatalog.com", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -52,12 +52,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 334, + "_idleStart": 354, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 497, + "duration": 316, "state": "passed", "speed": "slow" } @@ -78,7 +78,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "nBIEFd2NIqLVbDFfMigS8", + "parent": "bbwOK2LpuhDnl69gfDJXp", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -97,9 +97,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gPhQQwoNibF4iW1TlxhF0", + "parent": "CbZ9S04sw7-Fdn1H93d8D", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:bb187ddd-b67c-4727-8e2e-d39917411f89" + "_testId": "urn:uuid:97731f03-b794-448c-9469-9e385c8b8d9f" }, { "title": "Digital Bazaar", @@ -118,14 +118,14 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aWClJJN2jbuMu5pUfMCp2", + "parent": "O7nxOf2jD4TvgUK3ey0x3", "ctx": null, "state": "pending" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -135,9 +135,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aWClJJN2jbuMu5pUfMCp2", + "parent": "O7nxOf2jD4TvgUK3ey0x3", "ctx": null, - "_testId": "urn:uuid:73c00b0c-68d9-42b5-8b2c-2a0a64ca1c3a", + "_testId": "urn:uuid:daefda88-8c9f-4b0b-bb6d-4470c9540911", "cell": { "columnId": "Digital Bazaar", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -149,12 +149,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 832, + "_idleStart": 671, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 443, + "duration": 344, "state": "passed", "speed": "slow" } @@ -175,7 +175,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "aWClJJN2jbuMu5pUfMCp2", + "parent": "O7nxOf2jD4TvgUK3ey0x3", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -194,9 +194,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gPhQQwoNibF4iW1TlxhF0", + "parent": "CbZ9S04sw7-Fdn1H93d8D", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:5c636eb2-2026-40f8-ae90-c273c8ebf0bb" + "_testId": "urn:uuid:3a46822e-a9d9-462e-862a-ead7db47fcc8" }, { "title": "Open Security and Identity", @@ -215,14 +215,14 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Dh4M6GU212LhKPu0C-i7-", + "parent": "OR4HXn14hSyM1PmdxgAkb", "ctx": null, "state": "pending" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -232,9 +232,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Dh4M6GU212LhKPu0C-i7-", + "parent": "OR4HXn14hSyM1PmdxgAkb", "ctx": null, - "_testId": "urn:uuid:66beb3df-16e5-4ddb-a479-3c449ceecd8e", + "_testId": "urn:uuid:d53a7d7c-e0f6-4422-a36b-44060c6fe17b", "cell": { "columnId": "Open Security and Identity", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -246,12 +246,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1274, + "_idleStart": 1014, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 614, + "duration": 355, "state": "passed", "speed": "slow" } @@ -272,7 +272,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Dh4M6GU212LhKPu0C-i7-", + "parent": "OR4HXn14hSyM1PmdxgAkb", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -291,9 +291,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gPhQQwoNibF4iW1TlxhF0", + "parent": "CbZ9S04sw7-Fdn1H93d8D", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:c176c9fa-e357-4d9d-ba89-6333732aa4c0" + "_testId": "urn:uuid:e4bc3b2c-f70a-4595-9710-8f4ac962106a" }, { "title": "SpruceID", @@ -312,14 +312,14 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "jsqdmtjDcIYA6DhvS0ySJ", + "parent": "0gjkp7cRGUEKNgC6wg3hK", "ctx": null, "state": "pending" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -329,9 +329,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "jsqdmtjDcIYA6DhvS0ySJ", + "parent": "0gjkp7cRGUEKNgC6wg3hK", "ctx": null, - "_testId": "urn:uuid:7118278a-9735-417e-a685-d1ed13276c39", + "_testId": "urn:uuid:e8a7991a-67b7-4009-b8b2-44e3a8ea3afa", "cell": { "columnId": "SpruceID", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -343,12 +343,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1889, + "_idleStart": 1370, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 688, + "duration": 513, "state": "passed", "speed": "slow" } @@ -369,7 +369,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "jsqdmtjDcIYA6DhvS0ySJ", + "parent": "0gjkp7cRGUEKNgC6wg3hK", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -388,9 +388,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gPhQQwoNibF4iW1TlxhF0", + "parent": "CbZ9S04sw7-Fdn1H93d8D", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:7e8ee332-967c-43c0-8a5a-0c0448f9ed52" + "_testId": "urn:uuid:cf07b7c2-a5f5-4df9-b410-d4f4c6603887" } ], "root": false, @@ -406,13 +406,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:1b51847c-79ab-4b92-b24c-e2c0f690af4e", + "_testId": "urn:uuid:1adbafef-9f14-4177-9d25-fdadcca050e7", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -422,11 +422,12 @@ "rows": [ { "id": "verifiers MUST produce errors when non-conforming documents are detected.", + "link": "https://w3c.github.io/vc-data-model/#types:~:text=MUST%20produce%20errors%20when%20non%2Dconforming%20documents%20are%20detected.", "cells": [ { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -436,9 +437,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nBIEFd2NIqLVbDFfMigS8", + "parent": "bbwOK2LpuhDnl69gfDJXp", "ctx": null, - "_testId": "urn:uuid:d8e50dab-92c0-477d-a4f5-493029230edc", + "_testId": "urn:uuid:3025abe6-230d-4c2a-bcc7-2a00bb45ce21", "cell": { "columnId": "apicatalog.com", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -450,19 +451,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 334, + "_idleStart": 354, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 497, + "duration": 316, "state": "passed", "speed": "slow" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -472,9 +473,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aWClJJN2jbuMu5pUfMCp2", + "parent": "O7nxOf2jD4TvgUK3ey0x3", "ctx": null, - "_testId": "urn:uuid:73c00b0c-68d9-42b5-8b2c-2a0a64ca1c3a", + "_testId": "urn:uuid:daefda88-8c9f-4b0b-bb6d-4470c9540911", "cell": { "columnId": "Digital Bazaar", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -486,19 +487,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 832, + "_idleStart": 671, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 443, + "duration": 344, "state": "passed", "speed": "slow" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -508,9 +509,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Dh4M6GU212LhKPu0C-i7-", + "parent": "OR4HXn14hSyM1PmdxgAkb", "ctx": null, - "_testId": "urn:uuid:66beb3df-16e5-4ddb-a479-3c449ceecd8e", + "_testId": "urn:uuid:d53a7d7c-e0f6-4422-a36b-44060c6fe17b", "cell": { "columnId": "Open Security and Identity", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -522,19 +523,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1274, + "_idleStart": 1014, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 614, + "duration": 355, "state": "passed", "speed": "slow" }, { "type": "test", "title": "verifiers 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));\n await assert.rejects(endpoints.verifyVp(doc));\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, @@ -544,9 +545,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "jsqdmtjDcIYA6DhvS0ySJ", + "parent": "0gjkp7cRGUEKNgC6wg3hK", "ctx": null, - "_testId": "urn:uuid:7118278a-9735-417e-a685-d1ed13276c39", + "_testId": "urn:uuid:e8a7991a-67b7-4009-b8b2-44e3a8ea3afa", "cell": { "columnId": "SpruceID", "rowId": "verifiers MUST produce errors when non-conforming documents are detected." @@ -558,12 +559,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1889, + "_idleStart": 1370, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 688, + "duration": 513, "state": "passed", "speed": "slow" } @@ -583,7 +584,7 @@ { "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -593,9 +594,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:2177a0d9-6c25-4fcc-9241-88973d543729", + "_testId": "urn:uuid:beef0744-29c9-4c2a-aa28-1cf6d2e98cef", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials MUST include a @context property." @@ -607,19 +608,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2578, + "_idleStart": 1887, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1372, + "duration": 936, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -629,9 +630,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:ac8fb33c-f6ff-47e5-a38b-2ad62988ea2b", + "_testId": "urn:uuid:ce5da2e7-6edd-47d2-a9dd-b4914f99b9b3", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST include a @context property." @@ -643,19 +644,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3951, + "_idleStart": 2823, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 96, "state": "passed", "speed": "slow" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -665,9 +666,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:43e2f6c2-4f32-4d28-88e4-142ec277d5c0", + "_testId": "urn:uuid:f26eba25-305c-473f-b9eb-25c96bccc706", "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." @@ -679,19 +680,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4051, + "_idleStart": 2919, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 397, + "duration": 499, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -701,9 +702,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:112fabf6-1f2d-4ca3-8c30-44af1eb84168", + "_testId": "urn:uuid:848a7819-a2c1-4ba7-bef6-d956dba12461", "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." @@ -715,7 +716,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4448, + "_idleStart": 3418, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -727,7 +728,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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -737,9 +738,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:faf0c495-b345-49c2-b17b-98cf528ec963", + "_testId": "urn:uuid:8be1bd51-18a6-4a62-b216-6a6f8995930b", "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.\"" @@ -751,12 +752,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4547, + "_idleStart": 3517, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 908, + "duration": 1502, "state": "passed", "speed": "slow" } @@ -777,7 +778,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -796,9 +797,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Ryci7WopIcxktWOx0OXUE", + "parent": "Z_W6vHezX6mxNibF7AWFa", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:e6b73285-aab7-49c5-9832-109210d27131" + "_testId": "urn:uuid:3dd14d76-d7dd-41af-b236-44f9bcbb2651" }, { "title": "Digital Bazaar", @@ -808,7 +809,7 @@ { "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -818,9 +819,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:79335a22-f394-49e3-99e3-55912ab907f2", + "_testId": "urn:uuid:9ace8490-e2c6-4732-a1bc-ab17cf3c8233", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials MUST include a @context property." @@ -832,19 +833,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5455, + "_idleStart": 5018, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 919, + "duration": 420, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -854,9 +855,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:3888b7be-77b8-4cc8-b311-6385ec7fe781", + "_testId": "urn:uuid:99022f53-5771-4103-ad56-d73dbd89e57d", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations MUST include a @context property." @@ -868,19 +869,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6374, + "_idleStart": 5439, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 315, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -890,9 +891,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:d9741c5c-3768-41b2-a23e-7957f928cd7b", + "_testId": "urn:uuid:d9815feb-88c3-4074-84ec-7349359cfe01", "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." @@ -904,19 +905,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6689, + "_idleStart": 5490, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 395, + "duration": 290, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -926,9 +927,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:5368ae96-561a-40d0-aae7-5f5197604726", + "_testId": "urn:uuid:b3621261-195a-4d83-a050-ead6dcd55582", "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." @@ -940,19 +941,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7084, + "_idleStart": 5780, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2465, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -962,9 +963,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:23f7f29d-d9ee-495b-86a8-c9f42fb7d480", + "_testId": "urn:uuid:0433f160-eaf8-4e73-a3fe-5eed05253b5d", "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.\"" @@ -976,12 +977,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9549, + "_idleStart": 5837, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 838, + "duration": 862, "state": "passed", "speed": "slow" } @@ -1002,7 +1003,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1021,9 +1022,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Ryci7WopIcxktWOx0OXUE", + "parent": "Z_W6vHezX6mxNibF7AWFa", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:83289b17-cf69-4126-8648-5a54cbdc3c4f" + "_testId": "urn:uuid:9fb617ff-e542-4ee4-aa48-ef65bdc9ccb4" }, { "title": "Open Security and Identity", @@ -1033,7 +1034,7 @@ { "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1043,9 +1044,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:ded2ccf3-6e75-49d4-badf-415688bb39b2", + "_testId": "urn:uuid:b687bc82-585f-4553-875e-4cc6510b63e1", "cell": { "columnId": "Open Security and Identity", "rowId": "Verifiable credentials MUST include a @context property." @@ -1057,19 +1058,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 10387, + "_idleStart": 6699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 690, + "duration": 280, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1079,9 +1080,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:8fa9a3a1-39dd-41e4-a359-7daa9daad803", + "_testId": "urn:uuid:605e67b5-5684-4eec-9762-f210bfefce24", "cell": { "columnId": "Open Security and Identity", "rowId": "Verifiable presentations MUST include a @context property." @@ -1093,19 +1094,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11077, + "_idleStart": 6979, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 87, + "duration": 29, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1115,9 +1116,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:0ea2e43e-2fd1-4f92-aba7-319749e06b94", + "_testId": "urn:uuid:a1e755e7-3aa9-4030-bd37-2c0837b5a9d3", "cell": { "columnId": "Open Security and Identity", "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." @@ -1129,19 +1130,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11164, + "_idleStart": 7009, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 194, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1151,9 +1152,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:7c27750a-224d-4713-aa66-5df7c84c14c4", + "_testId": "urn:uuid:ca7d74aa-a582-4e19-a1ae-076a4f3a1692", "cell": { "columnId": "Open Security and Identity", "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." @@ -1165,19 +1166,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11358, + "_idleStart": 7082, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1187,9 +1188,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:d995cf05-1a33-4d85-b6a5-156732cc040c", + "_testId": "urn:uuid:af344293-fb7e-400c-bb27-30ead3eb7ff6", "cell": { "columnId": "Open Security and Identity", "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.\"" @@ -1201,12 +1202,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11447, + "_idleStart": 7112, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 746, + "duration": 459, "state": "passed", "speed": "slow" } @@ -1227,7 +1228,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1246,9 +1247,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Ryci7WopIcxktWOx0OXUE", + "parent": "Z_W6vHezX6mxNibF7AWFa", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:41b2b2ae-eb10-4865-a958-ef5d40339679" + "_testId": "urn:uuid:1381e894-44b4-4746-b695-b951049ef79d" }, { "title": "SpruceID", @@ -1258,7 +1259,7 @@ { "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1268,9 +1269,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:d7fff5a3-0c93-47e3-9879-fa44aa7d7208", + "_testId": "urn:uuid:55941f89-97c0-4478-910c-8028cec697c4", "cell": { "columnId": "SpruceID", "rowId": "Verifiable credentials MUST include a @context property." @@ -1282,19 +1283,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12193, + "_idleStart": 7571, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 415, + "duration": 368, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1304,9 +1305,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:dbd03c89-8ac6-4f8b-be9b-cc051c66516d", + "_testId": "urn:uuid:2ed4a1c7-adf0-4ac9-b808-9a131709250e", "cell": { "columnId": "SpruceID", "rowId": "Verifiable presentations MUST include a @context property." @@ -1318,19 +1319,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12609, + "_idleStart": 7940, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1340,9 +1341,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:fb94fb78-1b7d-429d-b59f-2ebee753c78a", + "_testId": "urn:uuid:aa473bbb-1e46-432e-90ee-31992c7245ac", "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." @@ -1354,19 +1355,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12697, + "_idleStart": 7992, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 176, + "duration": 116, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1376,9 +1377,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:52d31272-53b5-4b8f-a8db-89e1b6fd808e", + "_testId": "urn:uuid:82530f0b-77ec-42d6-a21f-8b508b7269ed", "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." @@ -1390,19 +1391,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12874, + "_idleStart": 8109, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 50, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1412,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/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:71d407ba-9ba3-41d8-a77d-d5fae9caf3b4", + "_testId": "urn:uuid:19f88e0e-903a-4de8-b2ba-5547a3672014", "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.\"" @@ -1426,12 +1427,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12961, + "_idleStart": 8160, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 353, + "duration": 248, "state": "passed", "speed": "slow" } @@ -1452,7 +1453,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -1471,9 +1472,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Ryci7WopIcxktWOx0OXUE", + "parent": "Z_W6vHezX6mxNibF7AWFa", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:5fcbb8cb-a23d-4534-b2df-2cbd0daabae4" + "_testId": "urn:uuid:33d249d4-dbc5-4e34-a0cf-22c0094c5fab" } ], "root": false, @@ -1489,13 +1490,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:8b724def-ed91-4c64-b4c1-48e24dbe7a9b", + "_testId": "urn:uuid:2410afec-5747-4415-acf0-bc919c61c20f", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -1505,11 +1506,12 @@ "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1519,9 +1521,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:2177a0d9-6c25-4fcc-9241-88973d543729", + "_testId": "urn:uuid:beef0744-29c9-4c2a-aa28-1cf6d2e98cef", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials MUST include a @context property." @@ -1533,19 +1535,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 2578, + "_idleStart": 1887, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1372, + "duration": 936, "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1555,9 +1557,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:79335a22-f394-49e3-99e3-55912ab907f2", + "_testId": "urn:uuid:9ace8490-e2c6-4732-a1bc-ab17cf3c8233", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable credentials MUST include a @context property." @@ -1569,19 +1571,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5455, + "_idleStart": 5018, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 919, + "duration": 420, "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1591,9 +1593,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:ded2ccf3-6e75-49d4-badf-415688bb39b2", + "_testId": "urn:uuid:b687bc82-585f-4553-875e-4cc6510b63e1", "cell": { "columnId": "Open Security and Identity", "rowId": "Verifiable credentials MUST include a @context property." @@ -1605,19 +1607,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 10387, + "_idleStart": 6699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 690, + "duration": 280, "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');\n // negative @context test\n await assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')));\n }", + "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 assert.rejects(endpoints.issue(\n require('./input/credential-no-context-fail.json')),\n 'Failed to reject a VC without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1627,9 +1629,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:d7fff5a3-0c93-47e3-9879-fa44aa7d7208", + "_testId": "urn:uuid:55941f89-97c0-4478-910c-8028cec697c4", "cell": { "columnId": "SpruceID", "rowId": "Verifiable credentials MUST include a @context property." @@ -1641,12 +1643,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12193, + "_idleStart": 7571, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 415, + "duration": 368, "state": "passed", "speed": "slow" } @@ -1654,11 +1656,12 @@ }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1668,9 +1671,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:ac8fb33c-f6ff-47e5-a38b-2ad62988ea2b", + "_testId": "urn:uuid:ce5da2e7-6edd-47d2-a9dd-b4914f99b9b3", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST include a @context property." @@ -1682,19 +1685,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 3951, + "_idleStart": 2823, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 96, "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1704,9 +1707,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:3888b7be-77b8-4cc8-b311-6385ec7fe781", + "_testId": "urn:uuid:99022f53-5771-4103-ad56-d73dbd89e57d", "cell": { "columnId": "Digital Bazaar", "rowId": "Verifiable presentations MUST include a @context property." @@ -1718,19 +1721,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6374, + "_idleStart": 5439, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 315, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1740,9 +1743,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:8fa9a3a1-39dd-41e4-a359-7daa9daad803", + "_testId": "urn:uuid:605e67b5-5684-4eec-9762-f210bfefce24", "cell": { "columnId": "Open Security and Identity", "rowId": "Verifiable presentations MUST include a @context property." @@ -1754,19 +1757,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11077, + "_idleStart": 6979, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 87, + "duration": 29, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')));\n }", + "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n vp.should.have.property('@context').to.be.an('array',\n 'Failed to respond with a VP with intact `@context`.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-no-context-fail.json')),\n 'Failed to reject a VP without an `@context`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1776,9 +1779,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:dbd03c89-8ac6-4f8b-be9b-cc051c66516d", + "_testId": "urn:uuid:2ed4a1c7-adf0-4ac9-b808-9a131709250e", "cell": { "columnId": "SpruceID", "rowId": "Verifiable presentations MUST include a @context property." @@ -1790,24 +1793,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12609, + "_idleStart": 7940, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "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": [ { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1817,9 +1821,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:43e2f6c2-4f32-4d28-88e4-142ec277d5c0", + "_testId": "urn:uuid:f26eba25-305c-473f-b9eb-25c96bccc706", "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." @@ -1831,19 +1835,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4051, + "_idleStart": 2919, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 397, + "duration": 499, "state": "passed", "speed": "slow" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1853,9 +1857,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:d9741c5c-3768-41b2-a23e-7957f928cd7b", + "_testId": "urn:uuid:d9815feb-88c3-4074-84ec-7349359cfe01", "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." @@ -1867,19 +1871,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6689, + "_idleStart": 5490, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 395, + "duration": 290, "state": "passed", "speed": "slow" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1889,9 +1893,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:0ea2e43e-2fd1-4f92-aba7-319749e06b94", + "_testId": "urn:uuid:a1e755e7-3aa9-4030-bd37-2c0837b5a9d3", "cell": { "columnId": "Open Security and Identity", "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." @@ -1903,19 +1907,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11164, + "_idleStart": 7009, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 194, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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('./input/credential-ok.json'));\n assert(Array.isArray(vc['@context']));\n assert.strictEqual(vc['@context'][0], baseContextUrl);\n // negative issue test\n await assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')));\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 //positive issue test\n const vc = await endpoints.issue(require('./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 assert.rejects(endpoints.issue(\n require('./input/credential-missing-base-context-fail.json')),\n 'Failed to reject a VC that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1925,9 +1929,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:fb94fb78-1b7d-429d-b59f-2ebee753c78a", + "_testId": "urn:uuid:aa473bbb-1e46-432e-90ee-31992c7245ac", "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." @@ -1939,12 +1943,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12697, + "_idleStart": 7992, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 176, + "duration": 116, "state": "passed", "speed": "slow" } @@ -1952,11 +1956,12 @@ }, { "id": "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.", + "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": [ { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -1966,9 +1971,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:112fabf6-1f2d-4ca3-8c30-44af1eb84168", + "_testId": "urn:uuid:848a7819-a2c1-4ba7-bef6-d956dba12461", "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." @@ -1980,7 +1985,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4448, + "_idleStart": 3418, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -1992,7 +1997,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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2002,9 +2007,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:5368ae96-561a-40d0-aae7-5f5197604726", + "_testId": "urn:uuid:b3621261-195a-4d83-a050-ead6dcd55582", "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." @@ -2016,19 +2021,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7084, + "_idleStart": 5780, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2465, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2038,9 +2043,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:7c27750a-224d-4713-aa66-5df7c84c14c4", + "_testId": "urn:uuid:ca7d74aa-a582-4e19-a1ae-076a4f3a1692", "cell": { "columnId": "Open Security and Identity", "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." @@ -2052,19 +2057,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11358, + "_idleStart": 7082, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']));\n assert.strictEqual(vp['@context'][0], baseContextUrl);\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')));\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 vp = await endpoints.createVp({\n presentation: require('./input/presentation-ok.json'),\n options: createOptions\n });\n assert(Array.isArray(vp['@context']),\n 'Failed to support `@context` as an Array.');\n assert.strictEqual(vp['@context'][0], baseContextUrl,\n 'Failed to keep `@context` order intact.');\n await assert.rejects(endpoints.verifyVp(\n require('./input/presentation-missing-base-context-fail.json')),\n 'Failed to reject a VP that lacked the VC base context URL.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2074,9 +2079,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:52d31272-53b5-4b8f-a8db-89e1b6fd808e", + "_testId": "urn:uuid:82530f0b-77ec-42d6-a21f-8b508b7269ed", "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." @@ -2088,24 +2093,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12874, + "_idleStart": 8109, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 50, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "id": "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.\"", + "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": [ { "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2115,9 +2121,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Bt1PP_ojWRpynRFvWEQje", + "parent": "YIOHthl1efafBtlg4Ljqf", "ctx": null, - "_testId": "urn:uuid:faf0c495-b345-49c2-b17b-98cf528ec963", + "_testId": "urn:uuid:8be1bd51-18a6-4a62-b216-6a6f8995930b", "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.\"" @@ -2129,19 +2135,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 4547, + "_idleStart": 3517, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 908, + "duration": 1502, "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2151,9 +2157,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "u2-ASYMRPx159yzB9i9Pl", + "parent": "uSLlDSG_P9AU9pt20tYVe", "ctx": null, - "_testId": "urn:uuid:23f7f29d-d9ee-495b-86a8-c9f42fb7d480", + "_testId": "urn:uuid:0433f160-eaf8-4e73-a3fe-5eed05253b5d", "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.\"" @@ -2165,19 +2171,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9549, + "_idleStart": 5837, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 838, + "duration": 862, "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2187,9 +2193,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "QmbYVUVl6qsqVa2QKy239", + "parent": "1UO5HUA7PRd1zxuJHXbeR", "ctx": null, - "_testId": "urn:uuid:d995cf05-1a33-4d85-b6a5-156732cc040c", + "_testId": "urn:uuid:af344293-fb7e-400c-bb27-30ead3eb7ff6", "cell": { "columnId": "Open Security and Identity", "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.\"" @@ -2201,19 +2207,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11447, + "_idleStart": 7112, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 746, + "duration": 459, "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 endpoints.issue(require(\n './input/credential-context-combo1-ok.json'));\n await endpoints.issue(require(\n './input/credential-context-combo2-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo3-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-context-combo4-fail.json')));\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 '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 'Failed to reject a VC with an unsupported `@context` value type ' +\n '(number).');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2223,9 +2229,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "MfT6Dm2GxOeH5nAKOcX-k", + "parent": "CD_NvLwsg2fkJsI5HuDuQ", "ctx": null, - "_testId": "urn:uuid:71d407ba-9ba3-41d8-a77d-d5fae9caf3b4", + "_testId": "urn:uuid:19f88e0e-903a-4de8-b2ba-5547a3672014", "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.\"" @@ -2237,12 +2243,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12961, + "_idleStart": 8160, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 353, + "duration": 248, "state": "passed", "speed": "slow" } @@ -2262,7 +2268,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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2272,9 +2278,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "ylAvXepSHoyuUTb09Lxu8", + "parent": "_qOFHT178Hl9AGFwDu2oX", "ctx": null, - "_testId": "urn:uuid:690c4ef9-473a-47d7-adc2-b3c218d35641", + "_testId": "urn:uuid:91d599db-d0e3-48c3-8f7f-5ddad6149cc3", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2286,12 +2292,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13315, + "_idleStart": 8409, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2532, + "duration": 5210, "state": "passed", "speed": "slow" } @@ -2312,7 +2318,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "ylAvXepSHoyuUTb09Lxu8", + "parent": "_qOFHT178Hl9AGFwDu2oX", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -2331,9 +2337,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "4J8nTclSQxA7Gz1dZkW2x", + "parent": "7OnxmW4qwIDBuuuE6-SN3", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:04a5ac05-af49-45e6-a46b-2f9de2d4aca5" + "_testId": "urn:uuid:f9a53ac9-3493-4295-8929-19826f793c0c" }, { "title": "Digital Bazaar", @@ -2343,7 +2349,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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2353,9 +2359,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "59M4mHtdZER5AU-0dfRSy", + "parent": "jJP20GfCw-vzpjwCNxkum", "ctx": null, - "_testId": "urn:uuid:1c1132a0-2ac2-4392-8fda-f238cee4cd9a", + "_testId": "urn:uuid:dce32950-5c34-4a7e-ac6d-3fd2771f86d1", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2367,12 +2373,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 15846, + "_idleStart": 13619, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1364, + "duration": 1183, "state": "passed", "speed": "slow" } @@ -2393,7 +2399,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "59M4mHtdZER5AU-0dfRSy", + "parent": "jJP20GfCw-vzpjwCNxkum", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -2412,9 +2418,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "4J8nTclSQxA7Gz1dZkW2x", + "parent": "7OnxmW4qwIDBuuuE6-SN3", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:25874991-8429-4c72-af03-23794130ac3c" + "_testId": "urn:uuid:57271542-13ad-4df9-94d5-b48a54da82fa" }, { "title": "Open Security and Identity", @@ -2424,7 +2430,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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2434,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/10-vcdm2.js", - "parent": "Z16IuaHajvaTXdBO4lfK6", + "parent": "Eu8sQg5EqStu6A-yIig3P", "ctx": null, - "_testId": "urn:uuid:13f3561d-8673-4621-a1fe-4bebd180c121", + "_testId": "urn:uuid:0ebbe153-6748-4e4d-8fba-381386427085", "cell": { "columnId": "Open Security and Identity", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2448,12 +2454,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17210, + "_idleStart": 14803, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 985, + "duration": 526, "state": "passed", "speed": "slow" } @@ -2474,13 +2480,13 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Z16IuaHajvaTXdBO4lfK6", + "parent": "Eu8sQg5EqStu6A-yIig3P", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "_error": null } ], @@ -2493,9 +2499,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "4J8nTclSQxA7Gz1dZkW2x", + "parent": "7OnxmW4qwIDBuuuE6-SN3", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:b258f113-b2a6-4fb1-a3f6-4876ac3d265c" + "_testId": "urn:uuid:5ff133ec-6d96-46e6-98ac-a1a89b4047e8" }, { "title": "SpruceID", @@ -2505,7 +2511,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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2515,9 +2521,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "ppw6U8jTb4O6skdy4LY1o", + "parent": "2beS3o5ezw4GKr0igR4Hu", "ctx": null, - "_testId": "urn:uuid:8e8703de-c96e-4421-adcb-dff9538f464a", + "_testId": "urn:uuid:a965f8ed-84d4-45ff-b5aa-81ee4b1ed9b9", "cell": { "columnId": "SpruceID", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2529,12 +2535,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18196, + "_idleStart": 15329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 666, + "duration": 435, "state": "passed", "speed": "slow" } @@ -2555,7 +2561,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "ppw6U8jTb4O6skdy4LY1o", + "parent": "2beS3o5ezw4GKr0igR4Hu", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -2574,9 +2580,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "4J8nTclSQxA7Gz1dZkW2x", + "parent": "7OnxmW4qwIDBuuuE6-SN3", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:39609e43-9315-4a40-af10-b056772ee2ad" + "_testId": "urn:uuid:eab2f23e-862a-4db0-9736-cc11c21c39b2" } ], "root": false, @@ -2592,13 +2598,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:bcbba176-800c-41bc-a662-05d6aa81fce4", + "_testId": "urn:uuid:6d4395ab-dbe8-4957-9265-0b77cb040654", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -2608,11 +2614,12 @@ "rows": [ { "id": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable.", + "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.", "cells": [ { "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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2622,9 +2629,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "ylAvXepSHoyuUTb09Lxu8", + "parent": "_qOFHT178Hl9AGFwDu2oX", "ctx": null, - "_testId": "urn:uuid:690c4ef9-473a-47d7-adc2-b3c218d35641", + "_testId": "urn:uuid:91d599db-d0e3-48c3-8f7f-5ddad6149cc3", "cell": { "columnId": "apicatalog.com", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2636,19 +2643,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13315, + "_idleStart": 8409, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2532, + "duration": 5210, "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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2658,9 +2665,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "59M4mHtdZER5AU-0dfRSy", + "parent": "jJP20GfCw-vzpjwCNxkum", "ctx": null, - "_testId": "urn:uuid:1c1132a0-2ac2-4392-8fda-f238cee4cd9a", + "_testId": "urn:uuid:dce32950-5c34-4a7e-ac6d-3fd2771f86d1", "cell": { "columnId": "Digital Bazaar", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2672,19 +2679,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 15846, + "_idleStart": 13619, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1364, + "duration": 1183, "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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2694,9 +2701,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Z16IuaHajvaTXdBO4lfK6", + "parent": "Eu8sQg5EqStu6A-yIig3P", "ctx": null, - "_testId": "urn:uuid:13f3561d-8673-4621-a1fe-4bebd180c121", + "_testId": "urn:uuid:0ebbe153-6748-4e4d-8fba-381386427085", "cell": { "columnId": "Open Security and Identity", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2708,19 +2715,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17210, + "_idleStart": 14803, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 985, + "duration": 526, "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 endpoints.issue(require('./input/credential-id-other-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-id-nonidentifier-fail.json')));\n\n await endpoints.issue(require(\n './input/credential-id-single-ok.json'));\n await endpoints.issue(require(\n './input/credential-id-subject-single-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-multi-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-id-subject-multi-fail.json')));\n\n await assert.rejects(\n endpoints.issue(require('./input/credential-id-not-url-fail.json')));\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 '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 '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 '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 'Failed to reject a credential with an invalid identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2730,9 +2737,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "ppw6U8jTb4O6skdy4LY1o", + "parent": "2beS3o5ezw4GKr0igR4Hu", "ctx": null, - "_testId": "urn:uuid:8e8703de-c96e-4421-adcb-dff9538f464a", + "_testId": "urn:uuid:a965f8ed-84d4-45ff-b5aa-81ee4b1ed9b9", "cell": { "columnId": "SpruceID", "rowId": "If present, the value of the id property MUST be a single URL, which MAY be dereferenceable." @@ -2744,12 +2751,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18196, + "_idleStart": 15329, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 666, + "duration": 435, "state": "passed", "speed": "slow" } @@ -2769,7 +2776,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 }", + "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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2779,9 +2786,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:d3bbc37e-a66c-49f7-afc7-f12a8857d7f3", + "_testId": "urn:uuid:1a38577a-4bb8-4e48-9f3a-1a915b67deab", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable credentials MUST contain a type property with an associated value." @@ -2793,19 +2800,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18863, + "_idleStart": 15765, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 193, + "duration": 52, "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 }", + "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 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2815,9 +2822,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:610e34d1-71f5-4135-9e65-d6bf0ff56c17", + "_testId": "urn:uuid:9dbdc269-0cc6-435a-bbc6-4e629168c1db", "cell": { "columnId": "apicatalog.com", "rowId": "Verifiable presentations MUST contain a type property with an associated value." @@ -2829,19 +2836,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19057, + "_idleStart": 15818, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 208, + "duration": 36, "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 '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 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2851,9 +2858,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:6d391eba-6264-468f-8959-44bd8638ff85", + "_testId": "urn:uuid:a6524893-6f46-4e0c-b46b-fc0fa63bdfa7", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." @@ -2865,12 +2872,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19266, + "_idleStart": 15854, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1189, + "duration": 1814, "state": "failed", "err": { "generatedMessage": false, @@ -2881,7 +2888,7 @@ { "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\n }", + "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, @@ -2891,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/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:1a394c61-fcf9-47a9-8d7b-a47af957e1b9", + "_testId": "urn:uuid:9e443e0e-c2aa-4d33-ab5e-feb497ccf41d", "cell": { "columnId": "apicatalog.com", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -2905,19 +2912,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 20458, + "_idleStart": 17671, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 791, + "duration": 546, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -2927,12 +2934,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:0280ce4e-de06-4688-98ec-da88b0820d6b", + "_testId": "urn:uuid:dbd6b6a2-0538-445f-9dce-e1c6b0efb3df", "cell": { "columnId": "apicatalog.com", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -2941,177 +2948,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21249, + "_idleStart": 18217, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 591, - "state": "failed", - "err": { - "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-07-21T05:06:30Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z2pP29nYPVfus4jjGWJsHFyRNpuAjr12sMoPehh5VXzdHcSGk46fPFiWcbMKBzwvsxGN14bwqYwhbhryfRkoFC94e\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", - "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-07-21T05:06:30Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-2022", - "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z2pP29nYPVfus4jjGWJsHFyRNpuAjr12sMoPehh5VXzdHcSGk46fPFiWcbMKBzwvsxGN14bwqYwhbhryfRkoFC94e" - } - }, - "options": { - "checks": [ - "proof" - ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" - } - }, - "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_PROOF_CONFIGURATION" - ], - "warnings": [], - "errors": [] - } - } - } - ], - "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, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "aPB-oUCq-ntg0_zjTYmAu", - "ctx": null, - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.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": "mJm4XoAIUaVXgQWrJkZ29", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:034fb00e-cd29-412b-9b21-534271f67a5c" - }, - { - "title": "Digital Bazaar", - "ctx": null, - "suites": [], - "tests": [ + "duration": 301, + "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 }", + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3121,33 +2970,151 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:8a33181d-33eb-448c-86c0-85196a528e13", + "_testId": "urn:uuid:bc93c8f5-f2ff-49db-8ee5-f61d74f70573", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "apicatalog.com", + "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": 21843, + "_idleStart": 18517, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 322, - "state": "passed", - "speed": "slow" + "duration": 105, + "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-07-28T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z64vbCRTt4efwLN3Z8g7pfaDBDdGmB35tL4njZQC3BtaW4Gke6J16pbuAxWwaTkyE7xZF39XqYVrLy2ja1NMMEEvk\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", + "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-07-28T05:06:37Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z64vbCRTt4efwLN3Z8g7pfaDBDdGmB35tL4njZQC3BtaW4Gke6J16pbuAxWwaTkyE7xZF39XqYVrLy2ja1NMMEEvk" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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_PROOF_CONFIGURATION" + ], + "warnings": [], + "errors": [] + } + }, + "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 }", + "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 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3157,33 +3124,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:4cd380ae-0248-44e3-b918-08bac9816596", + "_testId": "urn:uuid:04927f4f-1098-4d2d-82fd-b8646f708341", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "apicatalog.com", + "rowId": "`credentialStatus` 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": 22165, + "_idleStart": 18623, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2481, - "state": "passed", - "speed": "slow" + "duration": 595, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3193,33 +3164,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:6a86db86-efd3-405a-aa13-d3ac329e9387", + "_testId": "urn:uuid:43d4c729-77b9-4f91-a946-74fe99aab063", "cell": { - "columnId": "Digital Bazaar", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "apicatalog.com", + "rowId": "`termsOfUse` 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": 24646, + "_idleStart": 19219, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 515, - "state": "passed", - "speed": "slow" + "duration": 498, + "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\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 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3229,33 +3204,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:adbc4589-68c2-44cd-951a-23ab62f22761", + "_testId": "urn:uuid:84258ee8-bc28-4a53-af05-12f1830e1712", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If more than one (type) value is provided, the order does not matter." + "columnId": "apicatalog.com", + "rowId": "`evidence` 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": 25162, + "_idleStart": 19718, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 265, - "state": "passed", - "speed": "slow" + "duration": 398, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3265,12 +3244,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:3aab16c3-cef6-4b95-bd35-9168ffd5f61a", + "_testId": "urn:uuid:6b90c3d1-36d4-49c3-a23f-1ae63404e48d", "cell": { - "columnId": "Digital Bazaar", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "apicatalog.com", + "rowId": "`refreshService` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -3279,26 +3258,66 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25428, + "_idleStart": 20117, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1761, + "duration": 501, "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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:ad1d11e8-52d1-4bec-a488-62f886440a9e", + "cell": { + "columnId": "apicatalog.com", + "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": 20619, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 501, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + } + ], "root": false, "pending": false, "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"Digital Bazaar\"", + "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, @@ -3309,7 +3328,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -3328,19 +3347,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "mJm4XoAIUaVXgQWrJkZ29", + "parent": "r8-uBHAyNWVoROgWH6iE2", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:35b1d575-1a85-4b89-9130-682a8baa8d06" + "_testId": "urn:uuid:7da7b9f2-309c-4a37-82f3-839135c3bc0f" }, { - "title": "Open Security and Identity", + "title": "Digital Bazaar", "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 }", + "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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3350,11 +3369,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:b0b7533f-9cdd-44ba-b774-6ed679be0f3c", + "_testId": "urn:uuid:7ebab9af-8215-4458-acae-bd05041ee72a", "cell": { - "columnId": "Open Security and Identity", + "columnId": "Digital Bazaar", "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, @@ -3364,19 +3383,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27190, + "_idleStart": 21121, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 266, + "duration": 284, "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 }", + "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 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3386,11 +3405,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:5c5cc4f4-4df6-4d03-9a4c-f558430251ef", + "_testId": "urn:uuid:9a624038-bb1c-4859-b600-93b7538a2b0b", "cell": { - "columnId": "Open Security and Identity", + "columnId": "Digital Bazaar", "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, @@ -3400,19 +3419,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27456, + "_idleStart": 21405, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 71, "state": "passed", - "speed": "slow" + "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 '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 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3422,11 +3441,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:f37249e2-60be-4d55-b37e-443c7df16bef", + "_testId": "urn:uuid:21c24b5f-1e77-4f0d-b648-5cb157a80b2d", "cell": { - "columnId": "Open Security and Identity", + "columnId": "Digital Bazaar", "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." }, "_events": {}, @@ -3436,23 +3455,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27546, + "_idleStart": 21476, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 709, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "operator": "rejects" - } + "duration": 331, + "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\n }", + "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, @@ -3462,11 +3477,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:dd7291bf-77ab-4720-8097-38f501260e2d", + "_testId": "urn:uuid:ed6393c8-a241-4416-b46e-0701099d8056", "cell": { - "columnId": "Open Security and Identity", + "columnId": "Digital Bazaar", "rowId": "If more than one (type) value is provided, the order does not matter." }, "_events": {}, @@ -3476,19 +3491,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28255, + "_idleStart": 21808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 227, + "duration": 178, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3498,12 +3513,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:d82d5c6a-bfd9-40d0-8944-9655692ac7b0", + "_testId": "urn:uuid:e0ca6ca6-35ce-4c32-a2c6-f74c6bffbe97", "cell": { - "columnId": "Open Security and Identity", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "Digital Bazaar", + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -3512,128 +3527,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28482, + "_idleStart": 21985, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 283, - "state": "failed", - "err": { - "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-07-21T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4U4go22LqZoR8Xp5f91bRgafoTcKcbboRcj9goA6NkkJCvVQAxpqX5cpASkXTuBM4LvHUPwyhy2Rc8PeDZyEjwTh\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", - "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-07-21T05:06:37Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-2022", - "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4U4go22LqZoR8Xp5f91bRgafoTcKcbboRcj9goA6NkkJCvVQAxpqX5cpASkXTuBM4LvHUPwyhy2Rc8PeDZyEjwTh" - } - }, - "options": { - "checks": [ - "proof" - ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" - } - }, - "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://agent.opsec.id/vc/presentations/verify", - "status": 500 - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + "duration": 147, + "state": "passed", + "speed": "slow" + }, { - "title": "\"before each\" hook: addPerTestMetadata in \"Open Security and Identity\"", - "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 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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3642,39 +3548,165 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "mcezJXJ91WatpY-tLtJ-k", - "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "originalTitle": "\"before each\" hook: addPerTestMetadata", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:3f7c9623-afaf-479c-8c9e-a84701636551", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "Verifiable Presentation objects MUST have a type specified." + }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "mJm4XoAIUaVXgQWrJkZ29", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:ee9250bf-bfb6-4033-b455-d8036c0da668" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + "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": 22132, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 53, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "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-07-28T05:06:40Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "zXuVY7u2nob9kfUoHYKJLfbcvwc8JhzLEabXCt9UbSVd2hmMVtKCJGtFAc5eSZmWDhLgwSzs1EcmxhJHZ7ujsYrh" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:06:40Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"zXuVY7u2nob9kfUoHYKJLfbcvwc8JhzLEabXCt9UbSVd2hmMVtKCJGtFAc5eSZmWDhLgwSzs1EcmxhJHZ7ujsYrh\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}" + }, + "name": "HTTPError", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify", + "status": 403, + "data": { + "name": "NotAllowedError", + "message": "Authorization error.", + "details": { + "httpStatusCode": 403 + }, + "cause": { + "name": "Error", + "message": "The invoked capability has expired.", + "details": {}, + "cause": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + }, + "stack": "Error: The invoked capability has expired.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:188:13)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "Error" + }, + "stack": "NotAllowedError: Authorization error.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:195:9)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "NotAllowedError" + } + }, + "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 }", + "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 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3684,33 +3716,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:9a36d259-d463-4d6d-ada1-1b489adc9416", + "_testId": "urn:uuid:3f78765b-83e2-4058-83f3-25609cb7aa71", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "Digital Bazaar", + "rowId": "`credentialStatus` 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": 28766, + "_idleStart": 22186, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 137, "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 }", + "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 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3720,33 +3752,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:be89bff0-febe-4e0f-8fa2-057c2fbbcc40", + "_testId": "urn:uuid:201b3cf0-0e60-46d8-965c-9e4a159554da", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "Digital Bazaar", + "rowId": "`termsOfUse` 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": 28864, + "_idleStart": 22324, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 140, "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3756,33 +3788,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:5c910cdb-5404-410f-8c12-1fb2ce56a36a", + "_testId": "urn:uuid:f891d554-ad6b-462a-8c63-abb7da8566d0", "cell": { - "columnId": "SpruceID", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "Digital Bazaar", + "rowId": "`evidence` 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": 28950, + "_idleStart": 22464, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 619, + "duration": 141, "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\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 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3792,33 +3824,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:084a7ab6-6ef7-4ec1-b2a0-02e483028a80", + "_testId": "urn:uuid:07bcbb63-7957-4f39-bfd9-6a66eceba538", "cell": { - "columnId": "SpruceID", - "rowId": "If more than one (type) value is provided, the order does not matter." + "columnId": "Digital Bazaar", + "rowId": "`refreshService` 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": 29569, + "_idleStart": 22605, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 192, - "state": "passed", - "speed": "slow" + "duration": 175, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3828,12 +3864,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:a61ca13d-c20e-4627-92cb-46fd52599360", + "_testId": "urn:uuid:15abe1c9-d140-4e02-8328-670ac7a47e1d", "cell": { - "columnId": "SpruceID", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "Digital Bazaar", + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -3842,14 +3878,18 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29761, + "_idleStart": 22781, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1088, - "state": "passed", - "speed": "slow" + "duration": 170, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } } ], "root": false, @@ -3857,7 +3897,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"SpruceID\"", + "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, @@ -3868,7 +3908,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -3887,45 +3927,19 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "mJm4XoAIUaVXgQWrJkZ29", + "parent": "r8-uBHAyNWVoROgWH6iE2", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:f556c426-4e76-4952-a55a-27e3c9902092" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", - "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Implementer", - "_testId": "urn:uuid:59d7402d-df7c-4bf8-974e-0d3682ec0cc1", - "columns": [ - "apicatalog.com", - "Digital Bazaar", - "Open Security and Identity", - "SpruceID" - ], - "rows": [ + "_testId": "urn:uuid:149138cf-71b2-493a-a233-1fdf0e8c3179" + }, { - "id": "Verifiable credentials MUST contain a type property with an associated value.", - "cells": [ + "title": "Open Security and Identity", + "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 }", + "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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3935,11 +3949,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:d3bbc37e-a66c-49f7-afc7-f12a8857d7f3", + "_testId": "urn:uuid:5bfe508f-b5e9-49ef-80bf-f6a5a817cef9", "cell": { - "columnId": "apicatalog.com", + "columnId": "Open Security and Identity", "rowId": "Verifiable credentials MUST contain a type property with an associated value." }, "_events": {}, @@ -3949,19 +3963,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18863, + "_idleStart": 22951, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 193, + "duration": 110, "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 }", + "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 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3971,12 +3985,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:8a33181d-33eb-448c-86c0-85196a528e13", + "_testId": "urn:uuid:b35dddcd-929c-4c4b-8ace-3bebb947e946", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "Open Security and Identity", + "rowId": "Verifiable presentations MUST contain a type property with an associated value." }, "_events": {}, "_eventsCount": 1, @@ -3985,19 +3999,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21843, + "_idleStart": 23062, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 322, + "duration": 32, "state": "passed", - "speed": "slow" + "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 }", + "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 '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 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4007,33 +4021,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:b0b7533f-9cdd-44ba-b774-6ed679be0f3c", + "_testId": "urn:uuid:b2ac150d-46ea-4764-8a1e-814778ed5f73", "cell": { "columnId": "Open Security and Identity", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "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": 27190, + "_idleStart": 23093, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 266, - "state": "passed", - "speed": "slow" + "duration": 378, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "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 }", + "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, @@ -4043,38 +4061,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:9a36d259-d463-4d6d-ada1-1b489adc9416", + "_testId": "urn:uuid:11e85020-102c-4cd6-b761-5245280f2ca0", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable credentials MUST contain a type property with an associated value." + "columnId": "Open Security and Identity", + "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=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", + "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": 28766, + "_idleStart": 23472, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 109, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "Verifiable presentations MUST contain a type property with an associated value.", - "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 }", + "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 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4084,33 +4097,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:610e34d1-71f5-4135-9e65-d6bf0ff56c17", + "_testId": "urn:uuid:9e4d7527-8a83-42cb-a391-1607ca03d9dd", "cell": { - "columnId": "apicatalog.com", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "Open Security and Identity", + "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": 19057, + "_idleStart": 23581, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 208, + "duration": 87, "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 }", + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4120,33 +4133,143 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:4cd380ae-0248-44e3-b918-08bac9816596", + "_testId": "urn:uuid:23903294-b15e-4245-88fe-6d7291ec7e6a", "cell": { - "columnId": "Digital Bazaar", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "Open Security and Identity", + "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": 22165, + "_idleStart": 23669, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2481, - "state": "passed", - "speed": "slow" + "duration": 29, + "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-07-28T05:06:42Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4SfWCuuQeJfR7WqXHyGaYY3poLy8NRDNc7Uji9QPDdaQkoayJfUSUJpP6zEcrE8vGEi8JzqncNM56KgHtyZ6ZvHb\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", + "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-07-28T05:06:42Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4SfWCuuQeJfR7WqXHyGaYY3poLy8NRDNc7Uji9QPDdaQkoayJfUSUJpP6zEcrE8vGEi8JzqncNM56KgHtyZ6ZvHb" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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://agent.opsec.id/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 }", + "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 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4156,33 +4279,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:5c5cc4f4-4df6-4d03-9a4c-f558430251ef", + "_testId": "urn:uuid:65d89fe6-7613-4a0b-9801-7675696064f6", "cell": { "columnId": "Open Security and Identity", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "rowId": "`credentialStatus` 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": 27456, + "_idleStart": 23699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 125, "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 }", + "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 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4192,38 +4315,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:be89bff0-febe-4e0f-8fa2-057c2fbbcc40", + "_testId": "urn:uuid:7e586457-3629-4525-8e24-8c36e0afc18b", "cell": { - "columnId": "SpruceID", - "rowId": "Verifiable presentations MUST contain a type property with an associated value." + "columnId": "Open Security and Identity", + "rowId": "`termsOfUse` 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": 28864, + "_idleStart": 23824, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 83, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "The value of the type property MUST be one or more terms and/or absolute URL strings.", - "cells": [ + }, { "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4233,37 +4351,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:6d391eba-6264-468f-8959-44bd8638ff85", + "_testId": "urn:uuid:cdff84c9-f7c2-49be-b50c-ec1ddf5a5cbd", "cell": { - "columnId": "apicatalog.com", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "Open Security and Identity", + "rowId": "`evidence` 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": 19266, + "_idleStart": 23908, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1189, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "operator": "rejects" - } + "duration": 79, + "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4273,33 +4387,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:6a86db86-efd3-405a-aa13-d3ac329e9387", + "_testId": "urn:uuid:273fea1d-8c8c-4d28-ad6b-528b7294374b", "cell": { - "columnId": "Digital Bazaar", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "columnId": "Open Security and Identity", + "rowId": "`refreshService` 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": 24646, + "_idleStart": 23987, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 515, + "duration": 99, "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\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 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4309,37 +4423,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:f37249e2-60be-4d55-b37e-443c7df16bef", + "_testId": "urn:uuid:9f0e35b7-c3a7-4145-9960-6ca812658f92", "cell": { "columnId": "Open Security and Identity", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." + "rowId": "`credentialSchema` 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": 27546, + "_idleStart": 24086, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 709, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "operator": "rejects" - } - }, + "duration": 80, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "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 endpoints.issue(require('./input/credential-type-url-ok.json'));\n // type mapping to URL: OK\n await endpoints.issue(require(\n './input/credential-type-mapped-url-ok.json'));\n // type mapped not to URL: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-mapped-nonurl-fail.json')));\n // type not mapped: fail\n await assert.rejects(endpoints.issue(require(\n './input/credential-type-unmapped-fail.json')));\n }", + "title": "\"before each\" hook: addPerTestMetadata in \"Open Security and Identity\"", + "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, @@ -4348,39 +4462,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/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "type": "hook", + "parent": "F76sU6iwT4aILGKzngI2P", "ctx": null, - "_testId": "urn:uuid:5c910cdb-5404-410f-8c12-1fb2ce56a36a", - "cell": { - "columnId": "SpruceID", - "rowId": "The value of the type property MUST be one or more terms and/or absolute URL strings." - }, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", + "originalTitle": "\"before each\" hook: addPerTestMetadata", "_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": 28950, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 619, - "state": "passed", - "speed": "slow" + "duration": 0, + "_error": null } - ] + ], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "r8-uBHAyNWVoROgWH6iE2", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", + "_testId": "urn:uuid:c96a33c1-af8a-4272-8799-e74af31f89ac" }, { - "id": "If more than one (type) value is provided, the order does not matter.", - "cells": [ + "title": "SpruceID", + "ctx": null, + "suites": [], + "tests": [ { "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4390,33 +4504,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:1a394c61-fcf9-47a9-8d7b-a47af957e1b9", + "_testId": "urn:uuid:bf32e533-104d-4399-a5c2-be9421e8ddc5", "cell": { - "columnId": "apicatalog.com", - "rowId": "If more than one (type) value is provided, the order does not matter." + "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=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": 20458, + "_idleStart": 24167, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 791, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\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 'Failed to reject a VP without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4426,33 +4540,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:adbc4589-68c2-44cd-951a-23ab62f22761", + "_testId": "urn:uuid:df626704-1cd0-4b59-be6b-e8610436297f", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If more than one (type) value is provided, the order does not matter." + "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=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": 25162, + "_idleStart": 24224, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 265, + "duration": 43, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\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 '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 'Failed to reject a VC with an unmapped (via `@context`) type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4462,33 +4576,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:dd7291bf-77ab-4720-8097-38f501260e2d", + "_testId": "urn:uuid:741c29fd-20f9-4f41-b374-b43757023075", "cell": { - "columnId": "Open Security and Identity", - "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": 28255, + "_idleStart": 24267, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 227, + "duration": 283, "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 endpoints.issue(require(\n './input/credential-type-urls-order-1-ok.json'));\n //issue another VC with same urls in a different order\n await endpoints.issue(require(\n './input/credential-type-urls-order-2-ok.json'));\n }", + "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, @@ -4498,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/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:084a7ab6-6ef7-4ec1-b2a0-02e483028a80", + "_testId": "urn:uuid:0b381110-88eb-4d3a-b59d-fa051deabe87", "cell": { "columnId": "SpruceID", "rowId": "If more than one (type) value is provided, the order does not matter." @@ -4512,24 +4626,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29569, + "_idleStart": 24551, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 192, + "duration": 93, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"", - "cells": [ + }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject a VC missing the `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4539,12 +4648,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aPB-oUCq-ntg0_zjTYmAu", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:0280ce4e-de06-4688-98ec-da88b0820d6b", + "_testId": "urn:uuid:cfd509d0-a247-40d7-ae29-bd7041de5313", "cell": { - "columnId": "apicatalog.com", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "SpruceID", + "rowId": "Verifiable Credential objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -4553,132 +4662,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21249, + "_idleStart": 24644, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 591, - "state": "failed", - "err": { - "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-07-21T05:06:30Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z2pP29nYPVfus4jjGWJsHFyRNpuAjr12sMoPehh5VXzdHcSGk46fPFiWcbMKBzwvsxGN14bwqYwhbhryfRkoFC94e\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", - "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-07-21T05:06:30Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-2022", - "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z2pP29nYPVfus4jjGWJsHFyRNpuAjr12sMoPehh5VXzdHcSGk46fPFiWcbMKBzwvsxGN14bwqYwhbhryfRkoFC94e" - } - }, - "options": { - "checks": [ - "proof" - ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" - } - }, - "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_PROOF_CONFIGURATION" - ], - "warnings": [], - "errors": [] - } - } + "duration": 91, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 'Failed to reject VP missing `VerifiableCredential` type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4688,12 +4684,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "nXE2XmJp_uTguWFMrynw5", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:3aab16c3-cef6-4b95-bd35-9168ffd5f61a", + "_testId": "urn:uuid:ef4b6706-87f9-4bab-bff7-9d193b4a29ca", "cell": { - "columnId": "Digital Bazaar", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "SpruceID", + "rowId": "Verifiable Presentation objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -4702,23 +4698,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25428, + "_idleStart": 24736, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1761, - "state": "failed", - "err": { - "generatedMessage": false, - "code": "ERR_ASSERTION", - "operator": "rejects" - } + "duration": 90, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema 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 'Failed to reject a VC with `credentialStatus` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4728,12 +4720,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "mcezJXJ91WatpY-tLtJ-k", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:d82d5c6a-bfd9-40d0-8944-9655692ac7b0", + "_testId": "urn:uuid:c50aad91-7e05-4a8d-8c32-f7a4a3e2d852", "cell": { - "columnId": "Open Security and Identity", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "columnId": "SpruceID", + "rowId": "`credentialStatus` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -4742,124 +4734,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28482, + "_idleStart": 24826, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 283, - "state": "failed", - "err": { - "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-07-21T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4U4go22LqZoR8Xp5f91bRgafoTcKcbboRcj9goA6NkkJCvVQAxpqX5cpASkXTuBM4LvHUPwyhy2Rc8PeDZyEjwTh\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", - "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-07-21T05:06:37Z", - "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", - "cryptosuite": "eddsa-2022", - "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4U4go22LqZoR8Xp5f91bRgafoTcKcbboRcj9goA6NkkJCvVQAxpqX5cpASkXTuBM4LvHUPwyhy2Rc8PeDZyEjwTh" - } - }, - "options": { - "checks": [ - "proof" - ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" - } - }, - "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://agent.opsec.id/vc/presentations/verify", - "status": 500 - } + "duration": 91, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that 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 // (Verifiable) credential requires type VerifiableCredential\n // (Verifiable) presentation requires type VerifiablePresentation\n // Additional (more specific) types for these are optional.\n // Missing type property is tested separately.\n await endpoints.issue(require(\n './input/credential-optional-type-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-missing-required-type-fail.json')));\n const presentationOptionalType = await endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\n );\n await assert.rejects(\n endpoints.verifyVp(require(\n './input/presentation-missing-required-type-fail.json')));\n // Other objects requiring type: credentialStatus, termsOfUse,\n // and evidence.\n await endpoints.issue(require('./input/credential-status-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await endpoints.issue(require(\n './input/credential-termsofuse-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-termsofuse-missing-type-fail.json')));\n await endpoints.issue(require('./input/credential-evidence-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-evidence-missing-type-fail.json')));\n // also test refreshService and credentialSchema\n await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-type-fail.json')),\n 'Failed to reject credentialSchema without a `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 'Failed to reject a VC with `termsOfUse` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4869,12 +4756,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "kE-lwjNlr3FOgyG2z79un", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:a61ca13d-c20e-4627-92cb-46fd52599360", + "_testId": "urn:uuid:08d4f412-0cc8-498d-93ce-f82c6f13600a", "cell": { "columnId": "SpruceID", - "rowId": "VerifiableCredential, VerifiablePresentation, credentialStatus, termsOfUse, refreshService, credentialSchema, and evidence are \"objects that MUST have a type specified.\"" + "rowId": "`termsOfUse` objects MUST have a type specified." }, "_events": {}, "_eventsCount": 1, @@ -4883,32 +4770,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29761, + "_idleStart": 24917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1088, + "duration": 90, "state": "passed", "speed": "slow" - } - ] - } - ] - }, - { - "title": "Names and Descriptions", - "ctx": null, - "suites": [ - { - "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `evidence` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4918,69 +4792,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:a3408f03-eb3f-4eae-ae41-63d6f6153453", + "_testId": "urn:uuid:6f51c59a-2495-4f95-8408-921fc6dacbaf", "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": 30850, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 2514, - "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.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/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", - "ctx": null, - "_testId": "urn:uuid:19ee29c9-bd77-4a3c-96dd-fe18b8b71a03", - "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." + "columnId": "SpruceID", + "rowId": "`evidence` objects MUST have a type specified." }, "_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/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33364, + "_idleStart": 25007, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1286, + "duration": 93, "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `refreshService` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4990,33 +4828,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:273245c8-c43a-463d-b3ef-1368ff709ba6", + "_testId": "urn:uuid:fcf4c910-bb05-47d2-b488-a9667671fd33", "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." + "columnId": "SpruceID", + "rowId": "`refreshService` objects MUST have a type specified." }, "_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/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34650, + "_idleStart": 25101, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1299, + "duration": 94, "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject `credentialSchema` without a `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5026,26 +4864,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, - "_testId": "urn:uuid:a62cb9c6-a7f4-4168-8b01-14164d29dd92", + "_testId": "urn:uuid:a3a69bc0-b674-4dde-94de-4fb3ee3cd481", "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." + "columnId": "SpruceID", + "rowId": "`credentialSchema` objects MUST have a type specified." }, "_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/#types:~:text=the%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 35950, + "_idleStart": 25194, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1284, + "duration": 93, "state": "passed", "speed": "slow" } @@ -5055,7 +4893,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook: addPerTestMetadata in \"apicatalog.com\"", + "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, @@ -5066,7 +4904,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "raDsdWxMril_yjKkG7OHS", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -5085,19 +4923,46 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "IDUyBIOYtWS4fT8QTBAaI", + "parent": "r8-uBHAyNWVoROgWH6iE2", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:b14de069-fafb-4fa6-bcd2-2c0de3a6fba0" - }, + "_testId": "urn:uuid:28d91590-e1a2-42cc-8073-f4b95b1ade70" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "tO7oPn3hHROfRhJ8rSSau", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Implementer", + "_testId": "urn:uuid:5bcabd8d-b462-4925-8caf-e0fb497d7350", + "columns": [ + "apicatalog.com", + "Digital Bazaar", + "Open Security and Identity", + "SpruceID" + ], + "rows": [ { - "title": "Digital Bazaar", - "ctx": null, - "suites": [], - "tests": [ + "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": "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5107,133 +4972,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "S06a2EuhAkzkhgsK3A_Ru", "ctx": null, - "_testId": "urn:uuid:cbedb437-7cb9-44bc-8f4e-26fcf07f33be", + "_testId": "urn:uuid:1a38577a-4bb8-4e48-9f3a-1a915b67deab", "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." + "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/#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/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37233, + "_idleStart": 15765, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 727, - "state": "failed", - "err": { - "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", - "@direction": "ltr" - }, - "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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" - }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } - } + "duration": 52, + "state": "passed", + "speed": "medium" }, { "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC without a type.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5243,133 +5008,2202 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "WfIJDkVmi8bhU5ZIrNblo", "ctx": null, - "_testId": "urn:uuid:3a79b87b-56ac-4bf2-851b-f40091ca3d6a", + "_testId": "urn:uuid:7ebab9af-8215-4458-acae-bd05041ee72a", "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": "Verifiable credentials MUST contain a type property with an associated value." }, "_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/#types:~:text=Verifiable%20credentials%20and%20verifiable%20presentations%20MUST%20contain%20a%20type%20property%20with%20an%20associated%20value.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37961, + "_idleStart": 21121, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 487, - "state": "failed", - "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "description": { - "@value": "An Example Credential", - "@language": "en", - "@direction": "ltr" - }, - "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 + "duration": 284, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:5bfe508f-b5e9-49ef-80bf-f6a5a817cef9", + "cell": { + "columnId": "Open Security and Identity", + "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": 22951, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 110, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:bf32e533-104d-4399-a5c2-be9421e8ddc5", + "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": 24167, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 57, + "state": "passed", + "speed": "medium" + } + ] + }, + { + "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": [ + { + "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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:9dbdc269-0cc6-435a-bbc6-4e629168c1db", + "cell": { + "columnId": "apicatalog.com", + "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": 15818, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 36, + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:9a624038-bb1c-4859-b600-93b7538a2b0b", + "cell": { + "columnId": "Digital Bazaar", + "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": 21405, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 71, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:b35dddcd-929c-4c4b-8ace-3bebb947e946", + "cell": { + "columnId": "Open Security and Identity", + "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": 23062, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 32, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:df626704-1cd0-4b59-be6b-e8610436297f", + "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": 24224, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 43, + "state": "passed", + "speed": "medium" + } + ] + }, + { + "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": "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 '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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:a6524893-6f46-4e0c-b46b-fc0fa63bdfa7", + "cell": { + "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%20value%20of%20the%20type%20property%20MUST%20be%20one%20or%20more%20terms%20and/or%20absolute%20URL%20strings.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 15854, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1814, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, + { + "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 '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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:21c24b5f-1e77-4f0d-b648-5cb157a80b2d", + "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": 21476, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 331, + "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 '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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:b2ac150d-46ea-4764-8a1e-814778ed5f73", + "cell": { + "columnId": "Open Security and Identity", + "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": 23093, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 378, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } + }, + { + "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 '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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:741c29fd-20f9-4f41-b374-b43757023075", + "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": 24267, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 283, + "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": "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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:9e443e0e-c2aa-4d33-ab5e-feb497ccf41d", + "cell": { + "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=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 17671, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 546, + "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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:ed6393c8-a241-4416-b46e-0701099d8056", + "cell": { + "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=If%20more%20than%20one%20value%20is%20provided%2C%20the%20order%20does%20not%20matter.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 21808, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 178, + "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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:11e85020-102c-4cd6-b761-5245280f2ca0", + "cell": { + "columnId": "Open Security and Identity", + "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": 23472, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 109, + "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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:0b381110-88eb-4d3a-b59d-fa051deabe87", + "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": 24551, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 93, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "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 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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:dbd6b6a2-0538-445f-9dce-e1c6b0efb3df", + "cell": { + "columnId": "apicatalog.com", + "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": 18217, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 301, + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:e0ca6ca6-35ce-4c32-a2c6-f74c6bffbe97", + "cell": { + "columnId": "Digital Bazaar", + "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": 21985, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 147, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:9e4d7527-8a83-42cb-a391-1607ca03d9dd", + "cell": { + "columnId": "Open Security and Identity", + "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": 23581, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 87, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:cfd509d0-a247-40d7-ae29-bd7041de5313", + "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": 24644, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 91, + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:bc93c8f5-f2ff-49db-8ee5-f61d74f70573", + "cell": { + "columnId": "apicatalog.com", + "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": 18517, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 105, + "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-07-28T05:06:37Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z64vbCRTt4efwLN3Z8g7pfaDBDdGmB35tL4njZQC3BtaW4Gke6J16pbuAxWwaTkyE7xZF39XqYVrLy2ja1NMMEEvk\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", + "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-07-28T05:06:37Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z64vbCRTt4efwLN3Z8g7pfaDBDdGmB35tL4njZQC3BtaW4Gke6J16pbuAxWwaTkyE7xZF39XqYVrLy2ja1NMMEEvk" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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_PROOF_CONFIGURATION" ], - "maxRetryAfter": null, - "backoffLimit": null + "warnings": [], + "errors": [] + } + }, + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:3f7c9623-afaf-479c-8c9e-a84701636551", + "cell": { + "columnId": "Digital Bazaar", + "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": 22132, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 53, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "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-07-28T05:06:40Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "zXuVY7u2nob9kfUoHYKJLfbcvwc8JhzLEabXCt9UbSVd2hmMVtKCJGtFAc5eSZmWDhLgwSzs1EcmxhJHZ7ujsYrh" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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": "{\"verifiablePresentation\":{\"@context\":[\"https://www.w3.org/ns/credentials/v2\",{\"CredentialManagerPresentation\":\"https://example.org/examples#CredentialManagerPresentation\"}],\"type\":[\"VerifiablePresentation\",\"CredentialManagerPresentation\"],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:06:40Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"zXuVY7u2nob9kfUoHYKJLfbcvwc8JhzLEabXCt9UbSVd2hmMVtKCJGtFAc5eSZmWDhLgwSzs1EcmxhJHZ7ujsYrh\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}" }, - "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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify", + "status": 403, + "data": { + "name": "NotAllowedError", + "message": "Authorization error.", + "details": { + "httpStatusCode": 403 + }, + "cause": { + "name": "Error", + "message": "The invoked capability has expired.", + "details": {}, + "cause": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + }, + "stack": "Error: The invoked capability has expired.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:188:13)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "Error" + }, + "stack": "NotAllowedError: Authorization error.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:195:9)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "NotAllowedError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:23903294-b15e-4245-88fe-6d7291ec7e6a", + "cell": { + "columnId": "Open Security and Identity", + "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": 23669, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 29, + "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-07-28T05:06:42Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4SfWCuuQeJfR7WqXHyGaYY3poLy8NRDNc7Uji9QPDdaQkoayJfUSUJpP6zEcrE8vGEi8JzqncNM56KgHtyZ6ZvHb\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", + "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-07-28T05:06:42Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4SfWCuuQeJfR7WqXHyGaYY3poLy8NRDNc7Uji9QPDdaQkoayJfUSUJpP6zEcrE8vGEi8JzqncNM56KgHtyZ6ZvHb" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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://agent.opsec.id/vc/presentations/verify", + "status": 500 + }, + "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 endpoints.createVp({\n presentation: require('./input/presentation-optional-type-ok.json'),\n options: createOptions\n });\n await assert.doesNotReject(endpoints.verifyVp(\n presentationOptionalType,\n verifyPresentationOptions\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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:ef4b6706-87f9-4bab-bff7-9d193b4a29ca", + "cell": { + "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%20following%20table%20lists%20the%20objects%20that%20MUST%20have%20a%20type%20specified.", + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 24736, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 90, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "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": "`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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:04927f4f-1098-4d2d-82fd-b8646f708341", + "cell": { + "columnId": "apicatalog.com", + "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": 18623, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 595, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:3f78765b-83e2-4058-83f3-25609cb7aa71", + "cell": { + "columnId": "Digital Bazaar", + "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": 22186, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 137, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:65d89fe6-7613-4a0b-9801-7675696064f6", + "cell": { + "columnId": "Open Security and Identity", + "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": 23699, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 125, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:c50aad91-7e05-4a8d-8c32-f7a4a3e2d852", + "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": 24826, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 91, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "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": "`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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:43d4c729-77b9-4f91-a946-74fe99aab063", + "cell": { + "columnId": "apicatalog.com", + "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": 19219, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 498, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:201b3cf0-0e60-46d8-965c-9e4a159554da", + "cell": { + "columnId": "Digital Bazaar", + "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": 22324, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 140, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:7e586457-3629-4525-8e24-8c36e0afc18b", + "cell": { + "columnId": "Open Security and Identity", + "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": 23824, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 83, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:08d4f412-0cc8-498d-93ce-f82c6f13600a", + "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": 24917, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 90, + "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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:84258ee8-bc28-4a53-af05-12f1830e1712", + "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": 19718, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 398, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:f891d554-ad6b-462a-8c63-abb7da8566d0", + "cell": { + "columnId": "Digital Bazaar", + "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": 22464, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 141, + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:cdff84c9-f7c2-49be-b50c-ec1ddf5a5cbd", + "cell": { + "columnId": "Open Security and Identity", + "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": 23908, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 79, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:6f51c59a-2495-4f95-8408-921fc6dacbaf", + "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": 25007, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 93, + "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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:6b90c3d1-36d4-49c3-a23f-1ae63404e48d", + "cell": { + "columnId": "apicatalog.com", + "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": 20117, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 501, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:07bcbb63-7957-4f39-bfd9-6a66eceba538", + "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": 22605, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 175, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:273fea1d-8c8c-4d28-ad6b-528b7294374b", + "cell": { + "columnId": "Open Security and Identity", + "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": 23987, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 99, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:fcf4c910-bb05-47d2-b488-a9667671fd33", + "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": 25101, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 94, + "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 '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/10-vcdm2.js", + "parent": "S06a2EuhAkzkhgsK3A_Ru", + "ctx": null, + "_testId": "urn:uuid:ad1d11e8-52d1-4bec-a488-62f886440a9e", + "cell": { + "columnId": "apicatalog.com", + "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": 20619, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 501, + "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 '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/10-vcdm2.js", + "parent": "WfIJDkVmi8bhU5ZIrNblo", + "ctx": null, + "_testId": "urn:uuid:15abe1c9-d140-4e02-8328-670ac7a47e1d", + "cell": { + "columnId": "Digital Bazaar", + "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": 22781, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 170, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" } }, { "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 '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/10-vcdm2.js", + "parent": "F76sU6iwT4aILGKzngI2P", + "ctx": null, + "_testId": "urn:uuid:9f0e35b7-c3a7-4145-9960-6ca812658f92", + "cell": { + "columnId": "Open Security and Identity", + "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": 24086, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 80, + "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 '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/10-vcdm2.js", + "parent": "raDsdWxMril_yjKkG7OHS", + "ctx": null, + "_testId": "urn:uuid:a3a69bc0-b674-4dde-94de-4fb3ee3cd481", + "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": 25194, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 93, + "state": "passed", + "speed": "slow" + } + ] + } + ] + }, + { + "title": "Names and Descriptions", + "ctx": null, + "suites": [ + { + "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 '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/10-vcdm2.js", + "parent": "ACwyhaYGUirJMa9EAo_zj", + "ctx": null, + "_testId": "urn:uuid:42934d03-9155-471e-8847-5479cb1301f2", + "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": 25288, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 579, + "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 '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/10-vcdm2.js", + "parent": "ACwyhaYGUirJMa9EAo_zj", + "ctx": null, + "_testId": "urn:uuid:b7f174a4-4b0a-48af-8e79-7236480cf147", + "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": 25868, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 489, + "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 '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/10-vcdm2.js", + "parent": "ACwyhaYGUirJMa9EAo_zj", + "ctx": null, + "_testId": "urn:uuid:8c32486e-cf3e-4c82-b4c2-36e3bd2d4cfb", + "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": 26357, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 462, + "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 '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/10-vcdm2.js", + "parent": "ACwyhaYGUirJMa9EAo_zj", + "ctx": null, + "_testId": "urn:uuid:1e41705d-9b9b-493e-8c3e-36f79459fa84", + "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": 26818, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 499, + "state": "passed", + "speed": "slow" + } + ], + "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, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "ACwyhaYGUirJMa9EAo_zj", + "ctx": null, + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.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": "htOTyMIQwWXc9tn50LclL", + "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", + "_testId": "urn:uuid:ed737809-598b-4d5d-88d8-8e2d3b1857bc" + }, + { + "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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5379,12 +7213,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:babc10c3-65ea-4501-acfe-17eb1e226c74", + "_testId": "urn:uuid:03e5f3cb-6275-47c2-bef1-bdbddfd50f42", "cell": { "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." + "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, @@ -5393,121 +7227,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38449, + "_idleStart": 27317, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 490, + "duration": 581, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": { + "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": "ExampleIssuer", + "@value": "Example Credential", "@language": "en", "@direction": "ltr" }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null }, - "credentialSubject": { - "id": "did:example:subject" + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] } - } - }, - "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 + "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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, - "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\"}}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5517,12 +7354,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:c415c312-5ad5-48fc-a7bd-d01dded91f4f", + "_testId": "urn:uuid:2d52a8c4-1faf-45f3-97e2-20c0915ec1eb", "cell": { "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." + "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, @@ -5531,115 +7368,404 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38940, + "_idleStart": 27899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 484, + "duration": 367, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": { + "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" + ], "description": { - "@value": "An Example Issuer", + "@value": "An Example Credential", "@language": "en", "@direction": "ltr" }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "credentialSubject": { + "id": "did:example:subject" + }, + "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null }, - "credentialSubject": { - "id": "did:example:subject" + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] } - } - }, - "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\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } + }, + "operator": "doesNotReject" + } + }, + { + "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 '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/10-vcdm2.js", + "parent": "s6nMsoLAkjg_rRFixjUe6", + "ctx": null, + "_testId": "urn:uuid:5bbb6b34-2ee4-4526-be39-0c2307bb100f", + "cell": { + "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": {}, + "_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": 28266, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 402, + "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" + ], + "issuer": { + "name": { + "@value": "ExampleIssuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + }, + "credentialSubject": { + "id": "did:example:subject" + } + } + }, + "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\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, - "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 + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } + }, + "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 '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/10-vcdm2.js", + "parent": "s6nMsoLAkjg_rRFixjUe6", + "ctx": null, + "_testId": "urn:uuid:626ba96e-cb99-454f-ad17-490287bd3e4d", + "cell": { + "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": {}, + "_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": 28668, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 314, + "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" + ], + "issuer": { + "description": { + "@value": "An Example Issuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + }, + "credentialSubject": { + "id": "did:example:subject" + } + } + }, + "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\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, - "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\"}}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "operator": "doesNotReject" } } ], @@ -5659,7 +7785,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -5678,9 +7804,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "IDUyBIOYtWS4fT8QTBAaI", + "parent": "htOTyMIQwWXc9tn50LclL", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:8ac26e93-4751-467c-909b-89d88b8e7ea1" + "_testId": "urn:uuid:533b78fd-a2b6-49a2-844d-16d4b62c687f" }, { "title": "Open Security and Identity", @@ -5690,7 +7816,7 @@ { "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5700,9 +7826,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:f1bcb760-9290-47b1-a6ca-262a5e504cab", + "_testId": "urn:uuid:3dc3e52e-556c-42c3-8b74-3b7805748c5d", "cell": { "columnId": "Open Security and Identity", "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." @@ -5714,19 +7840,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39425, + "_idleStart": 28982, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1028, + "duration": 490, "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5736,9 +7862,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:052419fc-a10a-46a0-a47a-580f2c55ae37", + "_testId": "urn:uuid:13c4324f-c3f3-4b82-a4eb-8b42ddf211af", "cell": { "columnId": "Open Security and Identity", "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." @@ -5750,19 +7876,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40453, + "_idleStart": 29472, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 645, + "duration": 336, "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5772,9 +7898,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:bb1b120e-e580-47b0-bf54-219ea3c628a1", + "_testId": "urn:uuid:7b4796fc-b486-4bb5-9a2b-463b44e0cbdf", "cell": { "columnId": "Open Security and Identity", "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." @@ -5786,19 +7912,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41098, + "_idleStart": 29808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 672, + "duration": 305, "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5808,9 +7934,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:b4d86b6e-938f-434a-ac74-3cfe187a7f6c", + "_testId": "urn:uuid:d36cb681-36d1-40e0-a89a-cd607f309781", "cell": { "columnId": "Open Security and Identity", "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." @@ -5822,12 +7948,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41770, + "_idleStart": 30113, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 652, + "duration": 365, "state": "passed", "speed": "slow" } @@ -5848,7 +7974,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -5867,9 +7993,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "IDUyBIOYtWS4fT8QTBAaI", + "parent": "htOTyMIQwWXc9tn50LclL", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:46d76e7a-7441-4ac9-8e91-de676e60a368" + "_testId": "urn:uuid:f05b6471-9a21-4e33-b907-04ea2711f01b" }, { "title": "SpruceID", @@ -5879,7 +8005,7 @@ { "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5889,9 +8015,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:73dfcc96-533f-4670-bc8d-39dd54a89cdd", + "_testId": "urn:uuid:1383e774-1c44-46da-98ca-b881a3cd6abe", "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." @@ -5903,19 +8029,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42422, + "_idleStart": 30478, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 817, + "duration": 595, "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5925,9 +8051,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:8030be35-e4ba-4bf3-976f-9d1ab18d6eab", + "_testId": "urn:uuid:e414df03-394d-4ac1-b050-df3fbab3a970", "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." @@ -5939,19 +8065,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43239, + "_idleStart": 31073, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 599, + "duration": 448, "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5961,9 +8087,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:e95e80ba-790d-445a-ad35-577dc35923c2", + "_testId": "urn:uuid:bb7d6e75-9c10-4c7a-b27d-c205ee785578", "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." @@ -5975,19 +8101,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43838, + "_idleStart": 31521, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 551, + "duration": 468, "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5997,9 +8123,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:dc5eb899-9905-448f-926f-4b029a944421", + "_testId": "urn:uuid:33e87faa-3f03-4dea-b72f-66844033cf1f", "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." @@ -6011,12 +8137,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44389, + "_idleStart": 31989, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 578, + "duration": 434, "state": "passed", "speed": "slow" } @@ -6037,7 +8163,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -6056,9 +8182,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "IDUyBIOYtWS4fT8QTBAaI", + "parent": "htOTyMIQwWXc9tn50LclL", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:c9995dbb-53bf-4061-aa32-3f917207cb9f" + "_testId": "urn:uuid:e1b5003e-549a-4235-b39f-5239ad837d1c" } ], "root": false, @@ -6074,13 +8200,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:be6c1e2e-98fe-4371-b9df-b9c1305ac57c", + "_testId": "urn:uuid:13b8e225-34cb-4a4e-acf9-54e6bd7bd0ab", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -6090,11 +8216,12 @@ "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6104,9 +8231,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "ACwyhaYGUirJMa9EAo_zj", "ctx": null, - "_testId": "urn:uuid:a3408f03-eb3f-4eae-ae41-63d6f6153453", + "_testId": "urn:uuid:42934d03-9155-471e-8847-5479cb1301f2", "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." @@ -6118,19 +8245,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30850, + "_idleStart": 25288, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2514, + "duration": 579, "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6140,9 +8267,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:cbedb437-7cb9-44bc-8f4e-26fcf07f33be", + "_testId": "urn:uuid:03e5f3cb-6275-47c2-bef1-bdbddfd50f42", "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." @@ -6154,119 +8281,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37233, + "_idleStart": 27317, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 727, + "duration": 581, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" + "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", + "@direction": "ltr" + }, + "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" ], - "type": [ - "VerifiableCredential" + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 ], - "name": { - "@value": "Example Credential", - "@language": "en", - "@direction": "ltr" - }, - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": 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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, - "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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6276,9 +8408,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:f1bcb760-9290-47b1-a6ca-262a5e504cab", + "_testId": "urn:uuid:3dc3e52e-556c-42c3-8b74-3b7805748c5d", "cell": { "columnId": "Open Security and Identity", "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." @@ -6290,19 +8422,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39425, + "_idleStart": 28982, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1028, + "duration": 490, "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 endpoints.issue(require(\n `${fixturePath}/credential-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `name` containing extra properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6312,9 +8444,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:73dfcc96-533f-4670-bc8d-39dd54a89cdd", + "_testId": "urn:uuid:1383e774-1c44-46da-98ca-b881a3cd6abe", "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." @@ -6326,12 +8458,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42422, + "_idleStart": 30478, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 817, + "duration": 595, "state": "passed", "speed": "slow" } @@ -6339,11 +8471,12 @@ }, { "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 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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6353,9 +8486,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "ACwyhaYGUirJMa9EAo_zj", "ctx": null, - "_testId": "urn:uuid:19ee29c9-bd77-4a3c-96dd-fe18b8b71a03", + "_testId": "urn:uuid:b7f174a4-4b0a-48af-8e79-7236480cf147", "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." @@ -6367,19 +8500,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33364, + "_idleStart": 25868, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1286, + "duration": 489, "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6389,9 +8522,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:3a79b87b-56ac-4bf2-851b-f40091ca3d6a", + "_testId": "urn:uuid:2d52a8c4-1faf-45f3-97e2-20c0915ec1eb", "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." @@ -6403,119 +8536,124 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37961, + "_idleStart": 27899, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 487, + "duration": 367, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" + "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" + ], + "description": { + "@value": "An Example Credential", + "@language": "en", + "@direction": "ltr" + }, + "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" ], - "type": [ - "VerifiableCredential" + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 ], - "description": { - "@value": "An Example Credential", - "@language": "en", - "@direction": "ltr" - }, - "credentialSubject": { - "id": "did:example:subject" - }, - "issuer": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": 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\"],\"description\":{\"@value\":\"An Example Credential\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" }, - "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\",\"@direction\":\"ltr\"},\"credentialSubject\":{\"id\":\"did:example:subject\"},\"issuer\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6525,9 +8663,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:052419fc-a10a-46a0-a47a-580f2c55ae37", + "_testId": "urn:uuid:13c4324f-c3f3-4b82-a4eb-8b42ddf211af", "cell": { "columnId": "Open Security and Identity", "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." @@ -6539,19 +8677,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40453, + "_idleStart": 29472, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 645, + "duration": 336, "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 endpoints.issue(require(\n `${fixturePath}/credential-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/credential-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/credential-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/credential-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6561,9 +8699,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:8030be35-e4ba-4bf3-976f-9d1ab18d6eab", + "_testId": "urn:uuid:e414df03-394d-4ac1-b050-df3fbab3a970", "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." @@ -6575,12 +8713,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43239, + "_idleStart": 31073, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 599, + "duration": 448, "state": "passed", "speed": "slow" } @@ -6588,11 +8726,12 @@ }, { "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6602,9 +8741,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "ACwyhaYGUirJMa9EAo_zj", "ctx": null, - "_testId": "urn:uuid:273245c8-c43a-463d-b3ef-1368ff709ba6", + "_testId": "urn:uuid:8c32486e-cf3e-4c82-b4c2-36e3bd2d4cfb", "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." @@ -6616,19 +8755,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34650, + "_idleStart": 26357, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1299, + "duration": 462, "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6638,9 +8777,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:babc10c3-65ea-4501-acfe-17eb1e226c74", + "_testId": "urn:uuid:5bbb6b34-2ee4-4526-be39-0c2307bb100f", "cell": { "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." @@ -6652,121 +8791,126 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38449, + "_idleStart": 28266, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 490, + "duration": 402, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": { - "name": { - "@value": "ExampleIssuer", - "@language": "en", - "@direction": "ltr" + "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" + ], + "issuer": { + "name": { + "@value": "ExampleIssuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "credentialSubject": { + "id": "did:example:subject" + } + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null }, - "credentialSubject": { - "id": "did:example:subject" + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] } - } - }, - "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 + "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\"],\"issuer\":{\"name\":{\"@value\":\"ExampleIssuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, - "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\"}}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "operator": "doesNotReject" } }, { "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6776,9 +8920,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:bb1b120e-e580-47b0-bf54-219ea3c628a1", + "_testId": "urn:uuid:7b4796fc-b486-4bb5-9a2b-463b44e0cbdf", "cell": { "columnId": "Open Security and Identity", "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." @@ -6790,19 +8934,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41098, + "_idleStart": 29808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 672, + "duration": 305, "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 endpoints.issue(require(\n `${fixturePath}/issuer-name-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-name-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-name-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-name-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.name` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6812,9 +8956,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:e95e80ba-790d-445a-ad35-577dc35923c2", + "_testId": "urn:uuid:bb7d6e75-9c10-4c7a-b27d-c205ee785578", "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." @@ -6826,12 +8970,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 43838, + "_idleStart": 31521, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 551, + "duration": 468, "state": "passed", "speed": "slow" } @@ -6839,11 +8983,12 @@ }, { "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6853,9 +8998,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "JqgE34vudQDxbH49GP5qo", + "parent": "ACwyhaYGUirJMa9EAo_zj", "ctx": null, - "_testId": "urn:uuid:a62cb9c6-a7f4-4168-8b01-14164d29dd92", + "_testId": "urn:uuid:1e41705d-9b9b-493e-8c3e-36f79459fa84", "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." @@ -6867,19 +9012,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 35950, + "_idleStart": 26818, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1284, + "duration": 499, "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6889,9 +9034,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "NH36YfQ-uhgGtIBVsBp_P", + "parent": "s6nMsoLAkjg_rRFixjUe6", "ctx": null, - "_testId": "urn:uuid:c415c312-5ad5-48fc-a7bd-d01dded91f4f", + "_testId": "urn:uuid:626ba96e-cb99-454f-ad17-490287bd3e4d", "cell": { "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." @@ -6903,121 +9048,126 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38940, + "_idleStart": 28668, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 484, + "duration": 314, "state": "failed", "err": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "credential": { - "@context": [ - "https://www.w3.org/ns/credentials/v2" - ], - "type": [ - "VerifiableCredential" - ], - "issuer": { - "description": { - "@value": "An Example Issuer", - "@language": "en", - "@direction": "ltr" + "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" + ], + "issuer": { + "description": { + "@value": "An Example Issuer", + "@language": "en", + "@direction": "ltr" + }, + "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" }, - "id": "did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf" + "credentialSubject": { + "id": "did:example:subject" + } + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null }, - "credentialSubject": { - "id": "did:example:subject" + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] } - } - }, - "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 + "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\"],\"issuer\":{\"description\":{\"@value\":\"An Example Issuer\",\"@language\":\"en\",\"@direction\":\"ltr\"},\"id\":\"did:key:z6MkhnwBZSeedjZmTVekVKF7ocwSHhFpeUyBEUGmGPP7sYdf\"},\"credentialSubject\":{\"id\":\"did:example:subject\"}}}" }, - "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\"}}}" + "name": "HTTPError", + "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", + "status": 500, + "data": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + } }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresissuer.dev/issuers/z1A26NEYyG47sREgmpcWAxsKw/credentials/issue", - "status": 500, - "data": { - "message": "An unspecified error occurred.", - "name": "OperationError", - "type": "OperationError" - } + "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7027,9 +9177,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fPIZUO81gfJnhlyC58maK", + "parent": "y0Gq4ZD2Ntv8umAgiyYrB", "ctx": null, - "_testId": "urn:uuid:b4d86b6e-938f-434a-ac74-3cfe187a7f6c", + "_testId": "urn:uuid:d36cb681-36d1-40e0-a89a-cd607f309781", "cell": { "columnId": "Open Security and Identity", "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." @@ -7041,19 +9191,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41770, + "_idleStart": 30113, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 652, + "duration": 365, "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 endpoints.issue(require(\n `${fixturePath}/issuer-description-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-optional-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-description-language-en-ok.json`));\n await endpoints.issue(require(\n // eslint-disable-next-line max-len\n `${fixturePath}/issuer-description-language-direction-en-ok.json`));\n await endpoints.issue(require(\n `${fixturePath}/issuer-multi-language-description-ok.json`));\n await assert.rejects(endpoints.issue(require(\n `${fixturePath}/issuer-description-extra-prop-en-fail.json`)));\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 'Failed to reject a VC with `issuer.description` containing extra ' +\n 'properties.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7063,9 +9213,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "f_gPFDsfksusD63BoMi_C", + "parent": "wmYGZ1P0YmTtyZwynbLAO", "ctx": null, - "_testId": "urn:uuid:dc5eb899-9905-448f-926f-4b029a944421", + "_testId": "urn:uuid:33e87faa-3f03-4dea-b72f-66844033cf1f", "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." @@ -7077,12 +9227,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44389, + "_idleStart": 31989, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 578, + "duration": 434, "state": "passed", "speed": "slow" } @@ -7102,7 +9252,7 @@ { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7112,9 +9262,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "XJeMXbWFZIG3ADXU9d3Bp", + "parent": "i38TWtgLIftDocxjVLfDp", "ctx": null, - "_testId": "urn:uuid:3975f023-7647-4fa8-91cf-4eae8f567f41", + "_testId": "urn:uuid:04d6a34d-ec59-44e4-8e7b-a91b4c47a152", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7126,19 +9276,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44968, + "_idleStart": 32424, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 393, + "duration": 694, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7148,9 +9298,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "XJeMXbWFZIG3ADXU9d3Bp", + "parent": "i38TWtgLIftDocxjVLfDp", "ctx": null, - "_testId": "urn:uuid:1edcbec1-581d-460c-b6ee-7e3ffa3f6be3", + "_testId": "urn:uuid:38ff3276-f7c1-44b9-879c-96ab5dab2d4a", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7162,12 +9312,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45361, + "_idleStart": 33119, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 158, + "duration": 499, "state": "failed", "err": { "generatedMessage": false, @@ -7192,7 +9342,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "XJeMXbWFZIG3ADXU9d3Bp", + "parent": "i38TWtgLIftDocxjVLfDp", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -7211,9 +9361,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "cs2dUaipC9VOI4M2FGP7a", + "parent": "VKbYFddCiSZLpfJ8grsKF", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:2f816bdc-3e8c-4229-b2d5-39745be30f3b" + "_testId": "urn:uuid:68b92ad7-5f04-49c6-b57a-31e99baec5ef" }, { "title": "Digital Bazaar", @@ -7223,7 +9373,7 @@ { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7233,9 +9383,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "8Z2jhYUS8R2_Y8F8wZLAn", + "parent": "mzwxvSW-sV6hCl7YEa84h", "ctx": null, - "_testId": "urn:uuid:2eb0757f-6f86-4e7e-a342-04bda071cfde", + "_testId": "urn:uuid:325b3bc1-7aa0-448d-96ee-517f7ced5a81", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7247,19 +9397,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45520, + "_idleStart": 33618, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 190, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7269,9 +9419,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "8Z2jhYUS8R2_Y8F8wZLAn", + "parent": "mzwxvSW-sV6hCl7YEa84h", "ctx": null, - "_testId": "urn:uuid:272f67ad-56b5-496c-a312-2ec860492cb7", + "_testId": "urn:uuid:ff7c30e2-394c-4a93-8f28-da8a4102e867", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7283,12 +9433,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45632, + "_idleStart": 33808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 336, + "duration": 240, "state": "passed", "speed": "slow" } @@ -7309,7 +9459,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "8Z2jhYUS8R2_Y8F8wZLAn", + "parent": "mzwxvSW-sV6hCl7YEa84h", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -7328,9 +9478,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "cs2dUaipC9VOI4M2FGP7a", + "parent": "VKbYFddCiSZLpfJ8grsKF", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:ffb41df3-9983-43c5-8bde-c9e7b71db099" + "_testId": "urn:uuid:461ed03c-7683-45a5-9939-92ea46f9ffe1" }, { "title": "Open Security and Identity", @@ -7340,7 +9490,7 @@ { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7350,9 +9500,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "qnl_nP5wVeQiYVDNKJ7ZR", + "parent": "qCkxYJhn2Ey9oCdZul7pa", "ctx": null, - "_testId": "urn:uuid:2c104d59-b710-4cc3-932a-e8263a2d205c", + "_testId": "urn:uuid:2c73c24d-ccfe-45a3-96ec-a13c79de0b74", "cell": { "columnId": "Open Security and Identity", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7364,19 +9514,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45969, + "_idleStart": 34048, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7386,9 +9536,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "qnl_nP5wVeQiYVDNKJ7ZR", + "parent": "qCkxYJhn2Ey9oCdZul7pa", "ctx": null, - "_testId": "urn:uuid:40166fdc-f9af-4277-b652-1e2a48aa2b08", + "_testId": "urn:uuid:877c26ee-5926-4d15-be6e-a8e830ddbb71", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7400,12 +9550,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46052, + "_idleStart": 34079, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 123, "state": "passed", "speed": "slow" } @@ -7426,7 +9576,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "qnl_nP5wVeQiYVDNKJ7ZR", + "parent": "qCkxYJhn2Ey9oCdZul7pa", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -7445,9 +9595,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "cs2dUaipC9VOI4M2FGP7a", + "parent": "VKbYFddCiSZLpfJ8grsKF", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:069e415c-efda-44f8-a98d-6b75d1acdc78" + "_testId": "urn:uuid:456f553c-5b07-493e-b024-2346b985a122" }, { "title": "SpruceID", @@ -7457,7 +9607,7 @@ { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7467,9 +9617,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RkBYtzSewA4ZJTz_zEKfk", + "parent": "TMWvetvYVDHlehsCrWRF_", "ctx": null, - "_testId": "urn:uuid:533db4bd-7adf-4d3e-8277-0506e41b7a73", + "_testId": "urn:uuid:dca13b20-4e3b-4dc5-9688-436d093f367e", "cell": { "columnId": "SpruceID", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7481,19 +9631,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46329, + "_idleStart": 34201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 65, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7503,9 +9653,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RkBYtzSewA4ZJTz_zEKfk", + "parent": "TMWvetvYVDHlehsCrWRF_", "ctx": null, - "_testId": "urn:uuid:324687a6-43fe-442c-85c5-d4d547de2eef", + "_testId": "urn:uuid:9d7fb06c-f67f-4072-951e-156fa790f8ab", "cell": { "columnId": "SpruceID", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7517,12 +9667,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46418, + "_idleStart": 34266, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 262, + "duration": 192, "state": "passed", "speed": "slow" } @@ -7543,7 +9693,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "RkBYtzSewA4ZJTz_zEKfk", + "parent": "TMWvetvYVDHlehsCrWRF_", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -7562,9 +9712,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "cs2dUaipC9VOI4M2FGP7a", + "parent": "VKbYFddCiSZLpfJ8grsKF", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:74b5dfde-0f55-497f-9e77-5ffe7f276a5e" + "_testId": "urn:uuid:22c98450-6b98-4722-9c4b-dfb7303612d2" } ], "root": false, @@ -7580,13 +9730,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:f43b0ad7-15e1-4a63-bf24-490919d57a88", + "_testId": "urn:uuid:dcbadaaa-64a7-42da-89ca-6d5ca9fa068b", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -7596,11 +9746,12 @@ "rows": [ { "id": "A verifiable credential MUST have a credentialSubject property.", + "link": "https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.", "cells": [ { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7610,9 +9761,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "XJeMXbWFZIG3ADXU9d3Bp", + "parent": "i38TWtgLIftDocxjVLfDp", "ctx": null, - "_testId": "urn:uuid:3975f023-7647-4fa8-91cf-4eae8f567f41", + "_testId": "urn:uuid:04d6a34d-ec59-44e4-8e7b-a91b4c47a152", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7624,19 +9775,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44968, + "_idleStart": 32424, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 393, + "duration": 694, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7646,9 +9797,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "8Z2jhYUS8R2_Y8F8wZLAn", + "parent": "mzwxvSW-sV6hCl7YEa84h", "ctx": null, - "_testId": "urn:uuid:2eb0757f-6f86-4e7e-a342-04bda071cfde", + "_testId": "urn:uuid:325b3bc1-7aa0-448d-96ee-517f7ced5a81", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7660,19 +9811,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45520, + "_idleStart": 33618, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 190, "state": "passed", "speed": "slow" }, { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7682,9 +9833,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "qnl_nP5wVeQiYVDNKJ7ZR", + "parent": "qCkxYJhn2Ey9oCdZul7pa", "ctx": null, - "_testId": "urn:uuid:2c104d59-b710-4cc3-932a-e8263a2d205c", + "_testId": "urn:uuid:2c73c24d-ccfe-45a3-96ec-a13c79de0b74", "cell": { "columnId": "Open Security and Identity", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7696,19 +9847,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45969, + "_idleStart": 34048, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", "title": "A verifiable credential MUST have a credentialSubject property.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#credential-subject:~:text=A%20verifiable%20credential%20MUST%20have%20a%20credentialSubject%20property.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-no-subject-fail.json')),\n 'Failed to rejet a VC without a `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7718,9 +9869,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RkBYtzSewA4ZJTz_zEKfk", + "parent": "TMWvetvYVDHlehsCrWRF_", "ctx": null, - "_testId": "urn:uuid:533db4bd-7adf-4d3e-8277-0506e41b7a73", + "_testId": "urn:uuid:dca13b20-4e3b-4dc5-9688-436d093f367e", "cell": { "columnId": "SpruceID", "rowId": "A verifiable credential MUST have a credentialSubject property." @@ -7732,24 +9883,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46329, + "_idleStart": 34201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 65, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "id": "The value of the credentialSubject property is defined as 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%20defined%20as%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 defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7759,9 +9911,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "XJeMXbWFZIG3ADXU9d3Bp", + "parent": "i38TWtgLIftDocxjVLfDp", "ctx": null, - "_testId": "urn:uuid:1edcbec1-581d-460c-b6ee-7e3ffa3f6be3", + "_testId": "urn:uuid:38ff3276-f7c1-44b9-879c-96ab5dab2d4a", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7773,12 +9925,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45361, + "_idleStart": 33119, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 158, + "duration": 499, "state": "failed", "err": { "generatedMessage": false, @@ -7789,7 +9941,7 @@ { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7799,9 +9951,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "8Z2jhYUS8R2_Y8F8wZLAn", + "parent": "mzwxvSW-sV6hCl7YEa84h", "ctx": null, - "_testId": "urn:uuid:272f67ad-56b5-496c-a312-2ec860492cb7", + "_testId": "urn:uuid:ff7c30e2-394c-4a93-8f28-da8a4102e867", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7813,19 +9965,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45632, + "_idleStart": 33808, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 336, + "duration": 240, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7835,9 +9987,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "qnl_nP5wVeQiYVDNKJ7ZR", + "parent": "qCkxYJhn2Ey9oCdZul7pa", "ctx": null, - "_testId": "urn:uuid:40166fdc-f9af-4277-b652-1e2a48aa2b08", + "_testId": "urn:uuid:877c26ee-5926-4d15-be6e-a8e830ddbb71", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7849,19 +10001,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46052, + "_idleStart": 34079, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 123, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the credentialSubject property is defined as 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%20defined%20as%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 await endpoints.issue(require(\n './input/credential-subject-multiple-ok.json'));\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')));\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%20defined%20as%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 '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 // TODO: reconsider whether an empty object is a violation; as long as\n // at least one claim object is included...is there any harm in throwing\n // out the empties?\n await assert.rejects(\n endpoints.issue(require(\n './input/credential-subject-multiple-empty-fail.json')),\n 'Failed to reject VC containing an empty `credentialSubject`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7871,9 +10023,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RkBYtzSewA4ZJTz_zEKfk", + "parent": "TMWvetvYVDHlehsCrWRF_", "ctx": null, - "_testId": "urn:uuid:324687a6-43fe-442c-85c5-d4d547de2eef", + "_testId": "urn:uuid:9d7fb06c-f67f-4072-951e-156fa790f8ab", "cell": { "columnId": "SpruceID", "rowId": "The value of the credentialSubject property is defined as a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property." @@ -7885,12 +10037,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46418, + "_idleStart": 34266, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 262, + "duration": 192, "state": "passed", "speed": "slow" } @@ -7920,9 +10072,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "F0GU2FHLHczxJCRub-_-R", + "parent": "WgfT3IhIPpPE_qj0_gkoS", "ctx": null, - "_testId": "urn:uuid:ccbf3483-cb4a-462f-a9f1-882ad7a51c37", + "_testId": "urn:uuid:f966183d-6559-4963-bf27-a1d350516a06", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable credential MUST have an issuer property." @@ -7934,19 +10086,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46681, + "_idleStart": 34458, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 367, + "duration": 119, "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7956,9 +10108,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "F0GU2FHLHczxJCRub-_-R", + "parent": "WgfT3IhIPpPE_qj0_gkoS", "ctx": null, - "_testId": "urn:uuid:f4355afb-7b75-4530-8d46-0a76fa6becff", + "_testId": "urn:uuid:1e1147e0-0a4e-49bd-b548-92fb06c9a0e9", "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." @@ -7970,12 +10122,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47049, + "_idleStart": 34578, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 399, + "duration": 187, "state": "failed", "err": { "generatedMessage": false, @@ -8000,7 +10152,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "F0GU2FHLHczxJCRub-_-R", + "parent": "WgfT3IhIPpPE_qj0_gkoS", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -8019,9 +10171,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "komnXPyDCZ1FSz2-PxRyK", + "parent": "HpIw4WXnMkZoxIvnZqMrv", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:d7cb92fc-0a9b-4690-ba50-c6bac75193ad" + "_testId": "urn:uuid:41310976-734d-4e34-b0bd-794543ccd0ee" }, { "title": "Digital Bazaar", @@ -8041,9 +10193,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "4-AHxiObFtHmLUFbzDWj3", + "parent": "2f19sTnt2X_ddnvSgXhqL", "ctx": null, - "_testId": "urn:uuid:bdbf126b-dd0a-45e4-bab7-89aaac64e177", + "_testId": "urn:uuid:46b0a6e8-d12f-4702-983d-ffe115adb1ed", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have an issuer property." @@ -8055,19 +10207,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47449, + "_idleStart": 34766, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 108, "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8077,9 +10229,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "4-AHxiObFtHmLUFbzDWj3", + "parent": "2f19sTnt2X_ddnvSgXhqL", "ctx": null, - "_testId": "urn:uuid:0b05d84e-d097-4c48-a057-ebba6bed5154", + "_testId": "urn:uuid:07bec7dd-72fe-4c5e-9c17-8da0bf95d49e", "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." @@ -8091,12 +10243,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47581, + "_idleStart": 34874, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 189, "state": "failed", "err": { "generatedMessage": false, @@ -8121,7 +10273,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "4-AHxiObFtHmLUFbzDWj3", + "parent": "2f19sTnt2X_ddnvSgXhqL", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -8140,9 +10292,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "komnXPyDCZ1FSz2-PxRyK", + "parent": "HpIw4WXnMkZoxIvnZqMrv", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:31b2a86c-5e02-414f-b9fd-c9a34c320d36" + "_testId": "urn:uuid:7e4ab717-ab6a-4857-a955-573a2b98fff6" }, { "title": "Open Security and Identity", @@ -8162,9 +10314,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "B7BTfV2N3_90xbWKSXkR3", + "parent": "SlGgKyqt7SVmb_-5Chqfe", "ctx": null, - "_testId": "urn:uuid:c09b3d71-6b6c-4936-885d-dc576d088000", + "_testId": "urn:uuid:6938fb02-9dc6-4eaa-b065-a2846165cd9f", "cell": { "columnId": "Open Security and Identity", "rowId": "A verifiable credential MUST have an issuer property." @@ -8176,19 +10328,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47850, + "_idleStart": 35064, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 60, "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8198,9 +10350,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "B7BTfV2N3_90xbWKSXkR3", + "parent": "SlGgKyqt7SVmb_-5Chqfe", "ctx": null, - "_testId": "urn:uuid:fa255e41-7c24-4f32-b17a-a696d408315d", + "_testId": "urn:uuid:49c2a8a3-fe81-4c37-95ab-b0b552814d53", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -8212,12 +10364,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47957, + "_idleStart": 35124, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 390, + "duration": 170, "state": "passed", "speed": "slow" } @@ -8238,7 +10390,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "B7BTfV2N3_90xbWKSXkR3", + "parent": "SlGgKyqt7SVmb_-5Chqfe", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -8257,9 +10409,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "komnXPyDCZ1FSz2-PxRyK", + "parent": "HpIw4WXnMkZoxIvnZqMrv", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:b5127026-9fab-4ed0-ae0c-bd97d7de2e1d" + "_testId": "urn:uuid:c49af8bb-8089-4a9d-9b17-d2d6cfb51413" }, { "title": "SpruceID", @@ -8279,9 +10431,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "o7poYsbt6kCdPPQVDsK7v", + "parent": "gThCMhzSg4Be6jcM7Yj8U", "ctx": null, - "_testId": "urn:uuid:71b3c8fb-0b7b-4f70-b4f1-04af4b8db68e", + "_testId": "urn:uuid:d6cd20b1-a091-47c6-9598-65c161118f99", "cell": { "columnId": "SpruceID", "rowId": "A verifiable credential MUST have an issuer property." @@ -8293,19 +10445,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48347, + "_idleStart": 35295, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 66, "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8315,9 +10467,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "o7poYsbt6kCdPPQVDsK7v", + "parent": "gThCMhzSg4Be6jcM7Yj8U", "ctx": null, - "_testId": "urn:uuid:ad531619-c5db-4340-96c7-9e1e9c600b10", + "_testId": "urn:uuid:2d0350af-1daa-402b-9930-ee4433180db4", "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." @@ -8329,12 +10481,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48439, + "_idleStart": 35361, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 344, + "duration": 267, "state": "passed", "speed": "slow" } @@ -8355,7 +10507,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "o7poYsbt6kCdPPQVDsK7v", + "parent": "gThCMhzSg4Be6jcM7Yj8U", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -8374,9 +10526,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "komnXPyDCZ1FSz2-PxRyK", + "parent": "HpIw4WXnMkZoxIvnZqMrv", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:55c8b5f2-54af-4ab4-8e47-c9e3c225f92d" + "_testId": "urn:uuid:d513518e-e7d2-4599-ba30-cab0dea2c3d7" } ], "root": false, @@ -8392,13 +10544,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:79bd9631-3b91-4123-9a2d-97f538f496f4", + "_testId": "urn:uuid:cf420e14-4f58-4f30-9031-3a2e5e122e45", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -8408,6 +10560,7 @@ "rows": [ { "id": "A verifiable credential MUST have an issuer property.", + "link": "https://w3c.github.io/vc-data-model/#issuer:~:text=A%20verifiable%20credential%20MUST%20have%20an%20issuer%20property.", "cells": [ { "type": "test", @@ -8422,9 +10575,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "F0GU2FHLHczxJCRub-_-R", + "parent": "WgfT3IhIPpPE_qj0_gkoS", "ctx": null, - "_testId": "urn:uuid:ccbf3483-cb4a-462f-a9f1-882ad7a51c37", + "_testId": "urn:uuid:f966183d-6559-4963-bf27-a1d350516a06", "cell": { "columnId": "apicatalog.com", "rowId": "A verifiable credential MUST have an issuer property." @@ -8436,12 +10589,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46681, + "_idleStart": 34458, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 367, + "duration": 119, "state": "passed", "speed": "slow" }, @@ -8458,9 +10611,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "4-AHxiObFtHmLUFbzDWj3", + "parent": "2f19sTnt2X_ddnvSgXhqL", "ctx": null, - "_testId": "urn:uuid:bdbf126b-dd0a-45e4-bab7-89aaac64e177", + "_testId": "urn:uuid:46b0a6e8-d12f-4702-983d-ffe115adb1ed", "cell": { "columnId": "Digital Bazaar", "rowId": "A verifiable credential MUST have an issuer property." @@ -8472,12 +10625,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47449, + "_idleStart": 34766, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 108, "state": "passed", "speed": "slow" }, @@ -8494,9 +10647,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "B7BTfV2N3_90xbWKSXkR3", + "parent": "SlGgKyqt7SVmb_-5Chqfe", "ctx": null, - "_testId": "urn:uuid:c09b3d71-6b6c-4936-885d-dc576d088000", + "_testId": "urn:uuid:6938fb02-9dc6-4eaa-b065-a2846165cd9f", "cell": { "columnId": "Open Security and Identity", "rowId": "A verifiable credential MUST have an issuer property." @@ -8508,14 +10661,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47850, + "_idleStart": 35064, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 60, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8530,9 +10683,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "o7poYsbt6kCdPPQVDsK7v", + "parent": "gThCMhzSg4Be6jcM7Yj8U", "ctx": null, - "_testId": "urn:uuid:71b3c8fb-0b7b-4f70-b4f1-04af4b8db68e", + "_testId": "urn:uuid:d6cd20b1-a091-47c6-9598-65c161118f99", "cell": { "columnId": "SpruceID", "rowId": "A verifiable credential MUST have an issuer property." @@ -8544,24 +10697,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48347, + "_idleStart": 35295, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 66, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8571,9 +10725,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "F0GU2FHLHczxJCRub-_-R", + "parent": "WgfT3IhIPpPE_qj0_gkoS", "ctx": null, - "_testId": "urn:uuid:f4355afb-7b75-4530-8d46-0a76fa6becff", + "_testId": "urn:uuid:1e1147e0-0a4e-49bd-b548-92fb06c9a0e9", "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." @@ -8585,12 +10739,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47049, + "_idleStart": 34578, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 399, + "duration": 187, "state": "failed", "err": { "generatedMessage": false, @@ -8601,7 +10755,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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8611,9 +10765,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "4-AHxiObFtHmLUFbzDWj3", + "parent": "2f19sTnt2X_ddnvSgXhqL", "ctx": null, - "_testId": "urn:uuid:0b05d84e-d097-4c48-a057-ebba6bed5154", + "_testId": "urn:uuid:07bec7dd-72fe-4c5e-9c17-8da0bf95d49e", "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." @@ -8625,12 +10779,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47581, + "_idleStart": 34874, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 189, "state": "failed", "err": { "generatedMessage": false, @@ -8641,7 +10795,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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8651,9 +10805,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "B7BTfV2N3_90xbWKSXkR3", + "parent": "SlGgKyqt7SVmb_-5Chqfe", "ctx": null, - "_testId": "urn:uuid:fa255e41-7c24-4f32-b17a-a696d408315d", + "_testId": "urn:uuid:49c2a8a3-fe81-4c37-95ab-b0b552814d53", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the issuer property MUST be either a URL, or an object containing an id property whose value is a URL." @@ -8665,19 +10819,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47957, + "_idleStart": 35124, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 390, + "duration": 170, "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 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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 '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 '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 'Failed to reject a null issuer identifier.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-issuer-object-id-null-fail.json')),\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 'Failed to reject an issuer object containing a non-URL identifier.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8687,9 +10841,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "o7poYsbt6kCdPPQVDsK7v", + "parent": "gThCMhzSg4Be6jcM7Yj8U", "ctx": null, - "_testId": "urn:uuid:ad531619-c5db-4340-96c7-9e1e9c600b10", + "_testId": "urn:uuid:2d0350af-1daa-402b-9930-ee4433180db4", "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." @@ -8701,12 +10855,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48439, + "_idleStart": 35361, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 344, + "duration": 267, "state": "passed", "speed": "slow" } @@ -8726,7 +10880,7 @@ { "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8736,9 +10890,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:5b784900-b6e4-4571-8942-75ac165ddd63", + "_testId": "urn:uuid:0207fa79-fec0-455c-91a4-794f86a7f728", "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." @@ -8750,19 +10904,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48784, + "_idleStart": 35629, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 369, + "duration": 205, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8772,9 +10926,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:197a26fe-4213-4c45-8e8b-1ebbc3ed4c1b", + "_testId": "urn:uuid:77c71df1-134b-4d03-824f-301cd3e02893", "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." @@ -8786,115 +10940,120 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49153, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 74, - "state": "failed", - "err": { - "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 + "_idleStart": 35834, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 39, + "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" }, - "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" + } }, - "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", - "status": 400, - "data": { - "id": "EXPIRED", - "message": "Expired" - } + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8904,9 +11063,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:2fc02fa1-ca57-4e5f-9a65-8c64a50b11af", + "_testId": "urn:uuid:0c5e23fe-df8f-40d6-8ea2-c46c94a462ee", "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." @@ -8918,19 +11077,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49228, + "_idleStart": 35874, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 323, + "duration": 121, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8940,9 +11099,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:6737c540-74cc-4ebb-bbb6-d721e65b59e8", + "_testId": "urn:uuid:aaf43f20-6cb2-4e0c-840a-4d302efe1ff6", "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." @@ -8954,12 +11113,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49550, + "_idleStart": 35996, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 118, "state": "passed", "speed": "slow" }, @@ -8975,7 +11134,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, "state": "pending" } @@ -8996,7 +11155,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -9015,9 +11174,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "EfBMF6GJGFgAI4pp45Kk2", + "parent": "7ALoS9ueJWrpirmaNtOkD", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:eee4e4fc-5a45-4889-bc05-cb7541281344" + "_testId": "urn:uuid:056af8ff-c459-4fcc-b206-ee1bde9efa6e" }, { "title": "Digital Bazaar", @@ -9027,7 +11186,7 @@ { "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9037,9 +11196,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:7cde453c-f6e8-470f-87ce-453ab00fa0bc", + "_testId": "urn:uuid:75526399-474b-4adb-b158-6cddf464751e", "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." @@ -9051,19 +11210,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49819, + "_idleStart": 36113, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 379, + "duration": 231, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9073,9 +11232,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:46c31821-8e4f-4c20-8cc8-9142e0755625", + "_testId": "urn:uuid:1bcbb087-03a1-48d3-83e7-ba4ff61cf381", "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." @@ -9087,19 +11246,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50198, + "_idleStart": 36345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 539, + "duration": 321, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9109,9 +11268,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:a8ff703e-8d3f-40ad-aa79-bcc821263ce4", + "_testId": "urn:uuid:7eb6844b-e2d7-48de-9030-c7aaacb9b2cd", "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." @@ -9123,19 +11282,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50737, + "_idleStart": 36666, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 258, + "duration": 375, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9145,9 +11304,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:c0514bbc-9b2f-4628-aa6a-43d9fc1ce2d5", + "_testId": "urn:uuid:cf63a87c-4282-4c63-a810-166bb91df9c4", "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." @@ -9159,12 +11318,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50998, + "_idleStart": 37041, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 287, + "duration": 217, "state": "passed", "speed": "slow" }, @@ -9180,7 +11339,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, "state": "pending" } @@ -9201,7 +11360,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -9220,9 +11379,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "EfBMF6GJGFgAI4pp45Kk2", + "parent": "7ALoS9ueJWrpirmaNtOkD", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:46cff13c-b5d3-43f9-b674-9008180af560" + "_testId": "urn:uuid:59f3cb6b-2d5a-48ae-93f0-1285acf5eda8" }, { "title": "Open Security and Identity", @@ -9232,7 +11391,7 @@ { "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9242,9 +11401,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:71e345d0-0a81-46de-96a2-20bab5984880", + "_testId": "urn:uuid:b0f72d23-17a9-4adc-8306-1ff4c8c9a23b", "cell": { "columnId": "Open Security and Identity", "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." @@ -9256,19 +11415,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51288, + "_idleStart": 37258, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 381, + "duration": 160, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9278,9 +11437,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:bf2cd816-e89d-451c-aa27-c75bfce8ca29", + "_testId": "urn:uuid:aa55b543-54ae-4be5-9b57-4e2f87d07bcb", "cell": { "columnId": "Open Security and Identity", "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." @@ -9292,19 +11451,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51670, + "_idleStart": 37419, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 480, + "duration": 192, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9314,9 +11473,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:a442b308-20bb-44e5-8070-ab41d381ce96", + "_testId": "urn:uuid:a413a609-4912-4d26-ab92-bde97f2a8840", "cell": { "columnId": "Open Security and Identity", "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." @@ -9328,19 +11487,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52151, + "_idleStart": 37612, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 215, - "state": "passed", - "speed": "slow" + "duration": 128, + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9350,9 +11513,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:9d8e814f-bccc-4304-9000-fc8a62997ef1", + "_testId": "urn:uuid:44ffddcd-4c5d-4ce5-97aa-630cba7c3192", "cell": { "columnId": "Open Security and Identity", "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." @@ -9364,14 +11527,18 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52367, + "_idleStart": 37741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, - "state": "passed", - "speed": "slow" + "duration": 186, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "type": "test", @@ -9385,7 +11552,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, "state": "pending" } @@ -9406,7 +11573,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -9425,9 +11592,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "EfBMF6GJGFgAI4pp45Kk2", + "parent": "7ALoS9ueJWrpirmaNtOkD", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:e5635feb-80f9-4132-a896-4c8442fd9e5c" + "_testId": "urn:uuid:41ac9401-adfd-43ab-b9fb-ae257c973fb1" }, { "title": "SpruceID", @@ -9437,7 +11604,7 @@ { "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9447,9 +11614,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:57a93a65-110e-4adc-a1f7-b0ebc048d876", + "_testId": "urn:uuid:26fb53f0-2726-4268-8539-607054f87299", "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." @@ -9461,19 +11628,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52591, + "_idleStart": 37928, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 202, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9483,9 +11650,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:67b9c05f-0c2a-4ec8-af5c-84af035aacc1", + "_testId": "urn:uuid:9a056b3b-f6a0-418a-8df9-0e55272d4c3d", "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." @@ -9497,19 +11664,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52859, + "_idleStart": 38130, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 375, + "duration": 283, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9519,9 +11686,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:5eaefa6e-46ff-4fc9-b8f1-2d71e05bf4c7", + "_testId": "urn:uuid:845b8941-dfa3-4853-b1df-66d04e91dda4", "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." @@ -9533,19 +11700,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53234, + "_idleStart": 38413, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 182, + "duration": 217, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9555,9 +11722,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:1243968d-d6c7-4749-952d-2c67df291acb", + "_testId": "urn:uuid:86a2aa90-a071-48d9-83e3-b8bf15b7f073", "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." @@ -9569,12 +11736,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53417, + "_idleStart": 38630, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 203, + "duration": 211, "state": "passed", "speed": "slow" }, @@ -9590,7 +11757,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, "state": "pending" } @@ -9611,7 +11778,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -9630,9 +11797,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "EfBMF6GJGFgAI4pp45Kk2", + "parent": "7ALoS9ueJWrpirmaNtOkD", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:2347ee56-2cae-41ff-8e4f-3b993a26532f" + "_testId": "urn:uuid:25e7f512-c878-45b0-b11a-11008e38493e" } ], "root": false, @@ -9648,13 +11815,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:9567ff7e-35bc-4c43-8751-2adbf5d1e6f1", + "_testId": "urn:uuid:ed9f438b-7d1c-4b32-b9ad-1e031a7fc4cc", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -9664,11 +11831,12 @@ "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.", "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9678,9 +11846,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:5b784900-b6e4-4571-8942-75ac165ddd63", + "_testId": "urn:uuid:0207fa79-fec0-455c-91a4-794f86a7f728", "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." @@ -9692,19 +11860,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48784, + "_idleStart": 35629, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 369, + "duration": 205, "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9714,9 +11882,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:7cde453c-f6e8-470f-87ce-453ab00fa0bc", + "_testId": "urn:uuid:75526399-474b-4adb-b158-6cddf464751e", "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." @@ -9728,19 +11896,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49819, + "_idleStart": 36113, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 379, + "duration": 231, "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9750,9 +11918,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:71e345d0-0a81-46de-96a2-20bab5984880", + "_testId": "urn:uuid:b0f72d23-17a9-4adc-8306-1ff4c8c9a23b", "cell": { "columnId": "Open Security and Identity", "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." @@ -9764,19 +11932,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51288, + "_idleStart": 37258, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 381, + "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 endpoints.issue(require(\n './input/credential-validfrom-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validfrom-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validfrom-invalid-fail.json')));\n // TODO: add validFrom in the future test vector.\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 'Failed to reject a VC using an incorrect `validFrom` date-time \\\n format.');\n // TODO: add validFrom in the future test vector.\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9786,9 +11954,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:57a93a65-110e-4adc-a1f7-b0ebc048d876", + "_testId": "urn:uuid:26fb53f0-2726-4268-8539-607054f87299", "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." @@ -9800,12 +11968,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52591, + "_idleStart": 37928, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 202, "state": "passed", "speed": "slow" } @@ -9813,11 +11981,12 @@ }, { "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 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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9827,9 +11996,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:197a26fe-4213-4c45-8e8b-1ebbc3ed4c1b", + "_testId": "urn:uuid:77c71df1-134b-4d03-824f-301cd3e02893", "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." @@ -9841,115 +12010,120 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49153, + "_idleStart": 35834, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, + "duration": 39, "state": "failed", "err": { - "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" + "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" ], - "type": [ - "VerifiableCredential" + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 ], - "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 + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": 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" }, - "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" + } }, - "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/issue?suite=Ed25519Signature2020", - "status": 400, - "data": { - "id": "EXPIRED", - "message": "Expired" - } + "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9959,9 +12133,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:46c31821-8e4f-4c20-8cc8-9142e0755625", + "_testId": "urn:uuid:1bcbb087-03a1-48d3-83e7-ba4ff61cf381", "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." @@ -9973,19 +12147,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50198, + "_idleStart": 36345, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 539, + "duration": 321, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -9995,9 +12169,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:bf2cd816-e89d-451c-aa27-c75bfce8ca29", + "_testId": "urn:uuid:aa55b543-54ae-4be5-9b57-4e2f87d07bcb", "cell": { "columnId": "Open Security and Identity", "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." @@ -10009,19 +12183,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51670, + "_idleStart": 37419, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 480, + "duration": 192, "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 endpoints.issue(require('./input/credential-validuntil-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-ms-ok.json'));\n await endpoints.issue(require(\n './input/credential-validuntil-tz-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-validuntil-invalid-fail.json')));\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 'Failed to reject a VC using an inccorect `validUntil` date-time \\\n format.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10031,9 +12205,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:67b9c05f-0c2a-4ec8-af5c-84af035aacc1", + "_testId": "urn:uuid:9a056b3b-f6a0-418a-8df9-0e55272d4c3d", "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." @@ -10045,12 +12219,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52859, + "_idleStart": 38130, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 375, + "duration": 283, "state": "passed", "speed": "slow" } @@ -10058,11 +12232,12 @@ }, { "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 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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10072,9 +12247,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:2fc02fa1-ca57-4e5f-9a65-8c64a50b11af", + "_testId": "urn:uuid:0c5e23fe-df8f-40d6-8ea2-c46c94a462ee", "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." @@ -10086,19 +12261,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49228, + "_idleStart": 35874, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 323, + "duration": 121, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10108,9 +12283,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:a8ff703e-8d3f-40ad-aa79-bcc821263ce4", + "_testId": "urn:uuid:7eb6844b-e2d7-48de-9030-c7aaacb9b2cd", "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." @@ -10122,19 +12297,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50737, + "_idleStart": 36666, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 258, + "duration": 375, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10144,9 +12319,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:a442b308-20bb-44e5-8070-ab41d381ce96", + "_testId": "urn:uuid:a413a609-4912-4d26-ab92-bde97f2a8840", "cell": { "columnId": "Open Security and Identity", "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." @@ -10158,19 +12333,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52151, + "_idleStart": 37612, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 215, - "state": "passed", - "speed": "slow" + "duration": 128, + "state": "failed", + "err": { + "generatedMessage": false, + "code": "ERR_ASSERTION", + "operator": "rejects" + } }, { "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10180,9 +12359,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:5eaefa6e-46ff-4fc9-b8f1-2d71e05bf4c7", + "_testId": "urn:uuid:845b8941-dfa3-4853-b1df-66d04e91dda4", "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." @@ -10194,12 +12373,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53234, + "_idleStart": 38413, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 182, + "duration": 217, "state": "passed", "speed": "slow" } @@ -10207,11 +12386,12 @@ }, { "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10221,9 +12401,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg7GX8dmjZuTjJPFtGE_7", + "parent": "hGg8w6UDtjAbk-oru3EPW", "ctx": null, - "_testId": "urn:uuid:6737c540-74cc-4ebb-bbb6-d721e65b59e8", + "_testId": "urn:uuid:aaf43f20-6cb2-4e0c-840a-4d302efe1ff6", "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." @@ -10235,19 +12415,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49550, + "_idleStart": 35996, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 268, + "duration": 118, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10257,9 +12437,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "d_EPKt_O6cCyFtFtbYZr-", + "parent": "N03A0B7ZdodWxakGyM264", "ctx": null, - "_testId": "urn:uuid:c0514bbc-9b2f-4628-aa6a-43d9fc1ce2d5", + "_testId": "urn:uuid:cf63a87c-4282-4c63-a810-166bb91df9c4", "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." @@ -10271,19 +12451,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50998, + "_idleStart": 37041, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 287, + "duration": 217, "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10293,9 +12473,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0ESTnwJGlioOrOtJ0a-J8", + "parent": "w-cdw8lTlCGMuTIRto8Bh", "ctx": null, - "_testId": "urn:uuid:9d8e814f-bccc-4304-9000-fc8a62997ef1", + "_testId": "urn:uuid:44ffddcd-4c5d-4ce5-97aa-630cba7c3192", "cell": { "columnId": "Open Security and Identity", "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." @@ -10307,19 +12487,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52367, + "_idleStart": 37741, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 223, - "state": "passed", - "speed": "slow" + "duration": 186, + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await endpoints.issue(positiveTest);\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n assert.rejects(endpoints.verify(result));\n }", + "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 const positiveTest = require(\n './input/credential-validUntil-validFrom-ok.json');\n positiveTest.validFrom = createTimeStamp({skew: -2});\n positiveTest.validUntil = createTimeStamp({skew: 2});\n await assert.doesNotReject(endpoints.issue(positiveTest),\n 'Failed to accept a VC with a `validUntil` after its `validFrom`.');\n const negativeTest = require(\n './input/credential-validUntil-validFrom-fail.json');\n negativeTest.validFrom = createTimeStamp({skew: 2});\n negativeTest.validUntil = createTimeStamp({skew: -2});\n let error;\n let result;\n try {\n result = await endpoints.issue(negativeTest);\n } catch(e) {\n error = e;\n }\n if(error) {\n return;\n }\n await assert.rejects(endpoints.verify(result),\n 'Failed to reject a VC with a `validUntil` before its `validFrom`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10329,9 +12513,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-Zd4QIENJKPx1aRcJehbt", + "parent": "mruieCqeBqhA7S1Pa9JGw", "ctx": null, - "_testId": "urn:uuid:1243968d-d6c7-4749-952d-2c67df291acb", + "_testId": "urn:uuid:86a2aa90-a071-48d9-83e3-b8bf15b7f073", "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." @@ -10343,12 +12527,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53417, + "_idleStart": 38630, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 203, + "duration": 211, "state": "passed", "speed": "slow" } @@ -10368,7 +12552,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10378,9 +12562,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:883dcb00-2e01-4034-b149-bf9765d803fa", + "_testId": "urn:uuid:b391f00f-0e1f-4ba9-b8ff-7a5d784e6cd9", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10392,7 +12576,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10414,9 +12598,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:b2fad3a6-1408-4995-bcf4-688d026a0645", + "_testId": "urn:uuid:e9935e9c-0048-4bd0-9c2c-07579168be24", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10428,7 +12612,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10440,7 +12624,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10450,9 +12634,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:55cdfb4c-5e26-4a89-9c0b-d1092e03952f", + "_testId": "urn:uuid:cb6bdd6a-c33c-4db1-8657-59ba5b9965f8", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -10464,7 +12648,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10490,7 +12674,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10513,7 +12697,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before all\" hook", @@ -10523,12 +12707,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53622, + "_idleStart": 38841, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 202, + "duration": 74, "_error": null } ], @@ -10540,9 +12724,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wE7ZCy7SPZWj0Uf5j9_1H", + "parent": "lm6UcYUv_rI0X107Jzioy", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:eca24c41-1828-436e-b10f-7edfd30f4539" + "_testId": "urn:uuid:b3424d58-60b9-4b1b-bd51-a552f60cbbd2" }, { "title": "Digital Bazaar", @@ -10552,7 +12736,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10562,9 +12746,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:d1b215fb-2dbd-4171-abc0-65b663e49997", + "_testId": "urn:uuid:f8b4eb1e-4aa0-40e2-8806-be937359d181", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10576,12 +12760,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53959, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -10598,9 +12782,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:7224eedf-7769-4dc4-acc6-7fd8e1474803", + "_testId": "urn:uuid:63b0567a-1894-4fd6-9897-30299e2148d8", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10612,7 +12796,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53960, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10624,7 +12808,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10634,9 +12818,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:9147f0e0-e48f-449a-b2bf-9c70861c83d2", + "_testId": "urn:uuid:cef169b8-435c-42d4-b993-6c6a05cad8a1", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -10648,7 +12832,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53960, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10674,7 +12858,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10697,7 +12881,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before all\" hook", @@ -10707,12 +12891,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53827, + "_idleStart": 38918, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 84, "_error": null } ], @@ -10724,9 +12908,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wE7ZCy7SPZWj0Uf5j9_1H", + "parent": "lm6UcYUv_rI0X107Jzioy", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:7343dea7-7e9a-45fb-ac47-b3eb3d0428eb" + "_testId": "urn:uuid:0f4724bc-e82a-4216-b3a4-26015b26971a" }, { "title": "Open Security and Identity", @@ -10736,7 +12920,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10746,9 +12930,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:a3ca4e9e-4297-4693-820f-5ead15bd5133", + "_testId": "urn:uuid:9d5572f8-a23e-4961-82c3-905699e40624", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10760,7 +12944,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54098, + "_idleStart": 39059, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10782,9 +12966,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:0994b466-1006-4871-8962-70fd7ee642e1", + "_testId": "urn:uuid:c6ab318a-ae2e-4d20-8662-8e2b45ffa3dc", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10796,19 +12980,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54099, + "_idleStart": 39059, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10818,9 +13002,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:1f266999-9ab4-4756-8d18-cb336e06dfc3", + "_testId": "urn:uuid:544d99f1-bd1d-4e8c-ba56-fd2be4219073", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -10832,7 +13016,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54099, + "_idleStart": 39060, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10858,7 +13042,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -10881,7 +13065,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before all\" hook", @@ -10891,12 +13075,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53967, + "_idleStart": 39010, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 131, + "duration": 49, "_error": null } ], @@ -10908,9 +13092,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wE7ZCy7SPZWj0Uf5j9_1H", + "parent": "lm6UcYUv_rI0X107Jzioy", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:b2473745-3392-4780-a1dc-eec6341bfa0b" + "_testId": "urn:uuid:d637fe6d-1e18-4627-814b-55124328dc07" }, { "title": "SpruceID", @@ -10920,7 +13104,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -10930,9 +13114,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:a3508084-3d65-4672-bf52-e67fbd0e8e24", + "_testId": "urn:uuid:2e13e7f1-34e2-4a51-8f7b-bf72284644eb", "cell": { "columnId": "SpruceID", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10944,7 +13128,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39129, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10966,9 +13150,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:79812f37-fcf4-4a3b-a7b8-49d376de4bad", + "_testId": "urn:uuid:ef8dcf45-4aac-4b6a-8498-6d547bcaa2f6", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -10980,7 +13164,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39130, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -10992,7 +13176,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11002,9 +13186,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:32b810dc-04b2-49ff-acf9-2bb89d6c3b99", + "_testId": "urn:uuid:fe441630-3b0c-404d-88b9-d85b3c63c8dc", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -11016,7 +13200,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39130, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11042,7 +13226,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -11065,7 +13249,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before all\" hook", @@ -11075,12 +13259,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54101, + "_idleStart": 39062, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 67, "_error": null } ], @@ -11092,9 +13276,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "wE7ZCy7SPZWj0Uf5j9_1H", + "parent": "lm6UcYUv_rI0X107Jzioy", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:0d49b3eb-d36e-435e-b307-676620dda38e" + "_testId": "urn:uuid:988c739c-bc42-4765-989b-1a6448548e5a" } ], "root": false, @@ -11110,13 +13294,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:f28c9cb8-b15e-469b-ba20-6598f68c2fca", + "_testId": "urn:uuid:0b682f57-d860-45fb-8722-20ed334b10c5", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -11126,11 +13310,12 @@ "rows": [ { "id": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", + "link": "https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.", "cells": [ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11140,9 +13325,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:883dcb00-2e01-4034-b149-bf9765d803fa", + "_testId": "urn:uuid:b391f00f-0e1f-4ba9-b8ff-7a5d784e6cd9", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11154,7 +13339,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11166,7 +13351,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11176,9 +13361,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:d1b215fb-2dbd-4171-abc0-65b663e49997", + "_testId": "urn:uuid:f8b4eb1e-4aa0-40e2-8806-be937359d181", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11190,19 +13375,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53959, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11212,9 +13397,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:a3ca4e9e-4297-4693-820f-5ead15bd5133", + "_testId": "urn:uuid:9d5572f8-a23e-4961-82c3-905699e40624", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11226,7 +13411,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54098, + "_idleStart": 39059, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11238,7 +13423,7 @@ { "type": "test", "title": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20document%20MUST%20be%20secured%20by%20at%20least%20one%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.`;\n // embedded proof test\n // TODO: confirm these `exist` tests actually work; chaining seems off\n should.exist(issuedVc, `Expected ${name} to issue a VC.`);\n should.exist(issuedVc.proof, 'Expected VC to have a proof.');\n if(Array.isArray(issuedVc.proof)) {\n issuedVc.proof.length.should.be.gt(0, 'Expected at least one proof.');\n issuedVc.proof.every(p => typeof p === 'object').should.be.true;\n } else {\n issuedVc.proof.should.be.an(\n 'object',\n 'Expected proof to be an object.'\n );\n }\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11248,9 +13433,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:a3508084-3d65-4672-bf52-e67fbd0e8e24", + "_testId": "urn:uuid:2e13e7f1-34e2-4a51-8f7b-bf72284644eb", "cell": { "columnId": "SpruceID", "rowId": "A conforming document MUST be secured by at least one securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11262,7 +13447,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39129, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11275,6 +13460,7 @@ }, { "id": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms.", + "link": "https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20issuer%20implementation%20produces%20conforming%20documents%2C%20MUST%20include%20all%20required%20properties%20in%20the%20conforming%20documents%20that%20it%20produces%2C%20and%20MUST%20secure%20the%20conforming%20documents%20it%20produces%20using%20a%20securing%20mechanism%20as%20described%20in%20Section%204.9%20Securing%20Mechanisms.", "cells": [ { "type": "test", @@ -11289,9 +13475,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:b2fad3a6-1408-4995-bcf4-688d026a0645", + "_testId": "urn:uuid:e9935e9c-0048-4bd0-9c2c-07579168be24", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11303,7 +13489,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11325,9 +13511,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:7224eedf-7769-4dc4-acc6-7fd8e1474803", + "_testId": "urn:uuid:63b0567a-1894-4fd6-9897-30299e2148d8", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11339,7 +13525,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53960, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11361,9 +13547,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:0994b466-1006-4871-8962-70fd7ee642e1", + "_testId": "urn:uuid:c6ab318a-ae2e-4d20-8662-8e2b45ffa3dc", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11375,12 +13561,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54099, + "_idleStart": 39059, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -11397,9 +13583,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:79812f37-fcf4-4a3b-a7b8-49d376de4bad", + "_testId": "urn:uuid:ef8dcf45-4aac-4b6a-8498-6d547bcaa2f6", "cell": { "columnId": "SpruceID", "rowId": "A conforming issuer implementation produces conforming documents, MUST include all required properties in the conforming documents that it produces, and MUST secure the conforming documents it produces using a securing mechanism as described in Section 4.9 Securing Mechanisms." @@ -11411,7 +13597,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39130, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11424,11 +13610,12 @@ }, { "id": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", + "link": "https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.", "cells": [ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11438,9 +13625,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "w2GkuKb7yVtd1IfNuW-KV", + "parent": "7gLCE6htq327embG1GV9s", "ctx": null, - "_testId": "urn:uuid:55cdfb4c-5e26-4a89-9c0b-d1092e03952f", + "_testId": "urn:uuid:cb6bdd6a-c33c-4db1-8657-59ba5b9965f8", "cell": { "columnId": "apicatalog.com", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -11452,7 +13639,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53825, + "_idleStart": 38916, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11464,7 +13651,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11474,9 +13661,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Y-Tns2vtn8fwMMqO6RuT0", + "parent": "Elln7RLpM7iIXjSzxdyi8", "ctx": null, - "_testId": "urn:uuid:9147f0e0-e48f-449a-b2bf-9c70861c83d2", + "_testId": "urn:uuid:cef169b8-435c-42d4-b993-6c6a05cad8a1", "cell": { "columnId": "Digital Bazaar", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -11488,7 +13675,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 53960, + "_idleStart": 39003, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11500,7 +13687,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11510,9 +13697,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "CZYyyAtL8z-1D8F241fUQ", + "parent": "n-JxKF1UPgXFCYGa881Xi", "ctx": null, - "_testId": "urn:uuid:1f266999-9ab4-4756-8d18-cb336e06dfc3", + "_testId": "urn:uuid:544d99f1-bd1d-4e8c-ba56-fd2be4219073", "cell": { "columnId": "Open Security and Identity", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -11524,7 +13711,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54099, + "_idleStart": 39060, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11536,7 +13723,7 @@ { "type": "test", "title": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')));\n // TODO: add enveloped proof test\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#securing-mechanisms:~:text=A%20conforming%20verifier,documents%20are%20detected.`;\n // TODO: this verify is neither awaited nor tested; so just expecting\n // it to throw? We should be more explicit.\n endpoints.verify(issuedVc);\n // should reject a VC without a proof\n // TODO: VCs are not required to have a `proof` for verification; they\n // may be \"enveloped\" instead.\n assert.rejects(endpoints.verify(require('./input/credential-ok.json')),\n 'Failed to reject a VC missing a `proof`.');\n // TODO: add enveloped proof test\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11546,9 +13733,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "0C-je-kHD5qtfIgyc4mym", + "parent": "Q5mWc4Dxe0RK8q0ZbrSbZ", "ctx": null, - "_testId": "urn:uuid:32b810dc-04b2-49ff-acf9-2bb89d6c3b99", + "_testId": "urn:uuid:fe441630-3b0c-404d-88b9-d85b3c63c8dc", "cell": { "columnId": "SpruceID", "rowId": "A conforming verifier implementation consumes conforming documents, MUST perform verification on a conforming document as described in Section 4.9 Securing Mechanisms, MUST check that each required property satisfies the normative requirements for that property, and MUST produce errors when non-conforming documents are detected." @@ -11560,7 +13747,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54194, + "_idleStart": 39130, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11585,7 +13772,7 @@ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11595,9 +13782,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, - "_testId": "urn:uuid:76a1be75-c2ca-4d54-adab-7664a6bcf492", + "_testId": "urn:uuid:8430e9cb-5f7c-403a-bc10-4061a7090b98", "cell": { "columnId": "apicatalog.com", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -11609,12 +13796,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54196, + "_idleStart": 39132, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 853, + "duration": 984, "state": "failed", "err": { "generatedMessage": false, @@ -11625,7 +13812,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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -11635,9 +13822,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, - "_testId": "urn:uuid:0c29c59c-2323-4d94-9237-9d1e5dfee658", + "_testId": "urn:uuid:f61f2806-a486-4ef1-a9d6-c6028c3e453d", "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.4 Types MUST be followed." @@ -11649,12 +13836,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55050, + "_idleStart": 40117, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 309, + "duration": 298, "state": "failed", "err": { "generatedMessage": false, @@ -11674,7 +13861,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, "state": "pending" } @@ -11695,7 +13882,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -11714,9 +13901,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LskvKJFGQSH8SL48avHIN", + "parent": "hc6SLasCoxTYjpW6w9iGU", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:81d05f45-28fb-493d-a98b-56b934a40c20" + "_testId": "urn:uuid:c0d5a53d-ee7f-43ea-9600-01b8410bc29a" }, { "title": "Digital Bazaar", @@ -11726,7 +13913,7 @@ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11736,9 +13923,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, - "_testId": "urn:uuid:0348487b-a426-4c0c-8159-3754eb200d13", + "_testId": "urn:uuid:1f4b7bfa-4247-46bb-b767-a63a386f636c", "cell": { "columnId": "Digital Bazaar", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -11750,19 +13937,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55360, + "_idleStart": 40416, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 338, + "duration": 244, "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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -11772,9 +13959,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, - "_testId": "urn:uuid:e5e4560f-657a-4670-928b-674de1af54fd", + "_testId": "urn:uuid:15313df2-190a-4946-9641-4947a7c2ad41", "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.4 Types MUST be followed." @@ -11786,12 +13973,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55698, + "_idleStart": 40660, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 345, + "duration": 180, "state": "passed", "speed": "slow" }, @@ -11807,7 +13994,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, "state": "pending" } @@ -11828,7 +14015,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -11847,9 +14034,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LskvKJFGQSH8SL48avHIN", + "parent": "hc6SLasCoxTYjpW6w9iGU", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:bd1a2010-b0dc-4add-bd6e-b4013ed5f5ca" + "_testId": "urn:uuid:e652a7d6-71d7-43db-94b3-498592d77091" }, { "title": "Open Security and Identity", @@ -11859,7 +14046,7 @@ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -11869,9 +14056,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, - "_testId": "urn:uuid:3735571a-7ef1-48ce-b5da-b1574e7eae22", + "_testId": "urn:uuid:4d129f10-5aee-49a9-b2c8-387a674f2b2e", "cell": { "columnId": "Open Security and Identity", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -11883,19 +14070,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56043, + "_idleStart": 40840, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 107, "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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -11905,9 +14092,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, - "_testId": "urn:uuid:1028dcee-18a8-40c4-8a7d-950206beec68", + "_testId": "urn:uuid:c1e3f2ff-0c65-4756-aa68-0c11c008893a", "cell": { "columnId": "Open Security and Identity", "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.4 Types MUST be followed." @@ -11919,12 +14106,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56320, + "_idleStart": 40947, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 196, + "duration": 76, "state": "failed", "err": { "generatedMessage": false, @@ -11944,7 +14131,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, "state": "pending" } @@ -11965,7 +14152,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -11984,9 +14171,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LskvKJFGQSH8SL48avHIN", + "parent": "hc6SLasCoxTYjpW6w9iGU", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:4a055f77-4249-4136-aea1-36fe2513ac0b" + "_testId": "urn:uuid:3cca7d7a-3bd4-4d42-898d-28ae91f879a0" }, { "title": "SpruceID", @@ -11996,7 +14183,7 @@ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12006,9 +14193,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, - "_testId": "urn:uuid:11d5245c-d9dd-4b72-9c39-b1454d1b6932", + "_testId": "urn:uuid:afe7d684-4915-4a32-9c02-302fea3adfac", "cell": { "columnId": "SpruceID", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12020,19 +14207,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56516, + "_idleStart": 41023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 260, + "duration": 226, "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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -12042,9 +14229,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, - "_testId": "urn:uuid:be3aad81-b87c-4d73-b43d-1839c72c334f", + "_testId": "urn:uuid:e89e2297-61b6-4d36-b1f7-e5dd9eac0eeb", "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.4 Types MUST be followed." @@ -12056,12 +14243,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56777, + "_idleStart": 41249, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 275, + "duration": 213, "state": "passed", "speed": "slow" }, @@ -12077,7 +14264,7 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, "state": "pending" } @@ -12098,7 +14285,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -12117,9 +14304,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LskvKJFGQSH8SL48avHIN", + "parent": "hc6SLasCoxTYjpW6w9iGU", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:999652c2-c890-41b4-8cd6-8c1362f27d14" + "_testId": "urn:uuid:16fffbbb-aa92-43b2-90d8-eaf5ff6fc939" } ], "root": false, @@ -12135,13 +14322,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:c280a6e0-6a9e-41cf-a2a9-c2bd7037241a", + "_testId": "urn:uuid:98dba32b-a0fd-46ed-81f7-5a4324be5758", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -12151,11 +14338,12 @@ "rows": [ { "id": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type", "cells": [ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12165,9 +14353,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, - "_testId": "urn:uuid:76a1be75-c2ca-4d54-adab-7664a6bcf492", + "_testId": "urn:uuid:8430e9cb-5f7c-403a-bc10-4061a7090b98", "cell": { "columnId": "apicatalog.com", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12179,12 +14367,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 54196, + "_idleStart": 39132, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 853, + "duration": 984, "state": "failed", "err": { "generatedMessage": false, @@ -12195,7 +14383,7 @@ { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12205,9 +14393,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, - "_testId": "urn:uuid:0348487b-a426-4c0c-8159-3754eb200d13", + "_testId": "urn:uuid:1f4b7bfa-4247-46bb-b767-a63a386f636c", "cell": { "columnId": "Digital Bazaar", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12219,19 +14407,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55360, + "_idleStart": 40416, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 338, + "duration": 244, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12241,9 +14429,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, - "_testId": "urn:uuid:3735571a-7ef1-48ce-b5da-b1574e7eae22", + "_testId": "urn:uuid:4d129f10-5aee-49a9-b2c8-387a674f2b2e", "cell": { "columnId": "Open Security and Identity", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12255,19 +14443,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56043, + "_idleStart": 40840, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 107, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If present (credentialStatus.id), the normative guidance in Section 4.3 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.3%20Identifiers%20MUST%20be%20followed.,-type`;\n // id is optional\n await endpoints.issue(require(\n './input/credential-status-missing-id-ok.json'));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-multiple-id-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-nonurl-id-fail.json')));\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.3%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 '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 'Failed to reject a VC with a non-URL `credentialStatus.id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12277,9 +14465,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, - "_testId": "urn:uuid:11d5245c-d9dd-4b72-9c39-b1454d1b6932", + "_testId": "urn:uuid:afe7d684-4915-4a32-9c02-302fea3adfac", "cell": { "columnId": "SpruceID", "rowId": "If present (credentialStatus.id), the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12291,12 +14479,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56516, + "_idleStart": 41023, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 260, + "duration": 226, "state": "passed", "speed": "slow" } @@ -12304,11 +14492,12 @@ }, { "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.4 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.4%20Types%20MUST%20be%20followed.", "cells": [ { "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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -12318,9 +14507,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fUFROfGVMJ4meaf_OKTgJ", + "parent": "ljNmalAztCBIW_Ll-chZr", "ctx": null, - "_testId": "urn:uuid:0c29c59c-2323-4d94-9237-9d1e5dfee658", + "_testId": "urn:uuid:f61f2806-a486-4ef1-a9d6-c6028c3e453d", "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.4 Types MUST be followed." @@ -12332,12 +14521,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55050, + "_idleStart": 40117, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 309, + "duration": 298, "state": "failed", "err": { "generatedMessage": false, @@ -12348,7 +14537,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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -12358,9 +14547,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "9aU4yuzgHLoiWfQ6DplpA", + "parent": "7jeimMiE5Yy6o2CZxLgB8", "ctx": null, - "_testId": "urn:uuid:e5e4560f-657a-4670-928b-674de1af54fd", + "_testId": "urn:uuid:15313df2-190a-4946-9641-4947a7c2ad41", "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.4 Types MUST be followed." @@ -12372,19 +14561,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 55698, + "_idleStart": 40660, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 345, + "duration": 180, "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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -12394,9 +14583,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "T4FpiuNfNL7PvsaGVmy16", + "parent": "_J3xLYXRaN1UdAA1d-lqZ", "ctx": null, - "_testId": "urn:uuid:1028dcee-18a8-40c4-8a7d-950206beec68", + "_testId": "urn:uuid:c1e3f2ff-0c65-4756-aa68-0c11c008893a", "cell": { "columnId": "Open Security and Identity", "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.4 Types MUST be followed." @@ -12408,12 +14597,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56320, + "_idleStart": 40947, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 196, + "duration": 76, "state": "failed", "err": { "generatedMessage": false, @@ -12424,7 +14613,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.4 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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-type-nonurl-fail.json')));\n await endpoints.issue(require(\n './input/credential-status-ok.json'));\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.4%20Types%20MUST%20be%20followed.`;\n await assert.rejects(endpoints.issue(require(\n './input/credential-status-missing-type-fail.json')),\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 '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, @@ -12434,9 +14623,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aULSGHjPmhUrZ42TTO-xR", + "parent": "o87gk_qZ8Q8tye9f5cn3P", "ctx": null, - "_testId": "urn:uuid:be3aad81-b87c-4d73-b43d-1839c72c334f", + "_testId": "urn:uuid:e89e2297-61b6-4d36-b1f7-e5dd9eac0eeb", "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.4 Types MUST be followed." @@ -12448,12 +14637,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 56777, + "_idleStart": 41249, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 275, + "duration": 213, "state": "passed", "speed": "slow" } @@ -12483,9 +14672,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:a1089428-0093-4f9e-9a23-cb46da723b4a", + "_testId": "urn:uuid:77f12a73-443b-4809-88b0-a6a4dd7dae32", "cell": { "columnId": "apicatalog.com", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12497,7 +14686,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12518,9 +14707,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:27c724c8-b004-4406-acbf-ba337833550f", + "_testId": "urn:uuid:9df5a389-983a-4a28-be3d-3d564138c295", "cell": { "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.4 Types MUST be followed." @@ -12532,7 +14721,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12543,7 +14732,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12553,9 +14742,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:b8d9345b-e379-44b3-88d4-15936cb249f7", + "_testId": "urn:uuid:2435a5c3-5a22-44aa-9ad3-747f571dd72d", "cell": { "columnId": "apicatalog.com", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -12567,12 +14756,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, + "duration": 46, "state": "failed", "err": { "response": {}, @@ -12580,7 +14769,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-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", + "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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -12604,29 +14793,29 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "assertionMethod", - "proofValue": "zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7" + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" } }, "options": { "checks": [ "proof" ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" } }, "agent": { @@ -12724,7 +14913,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -12743,9 +14932,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LBb-Nzb8A7pn0QoJfDCaP", + "parent": "RbmUVII2apinoyF-fDUPI", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:19f0af7b-dce2-4dc0-9d0c-6a46c1f4c215" + "_testId": "urn:uuid:7552f225-4d9d-4b90-92a3-566c55f445bc" }, { "title": "Digital Bazaar", @@ -12765,9 +14954,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:a486bd9c-7922-44f5-9870-93ac2ba40831", + "_testId": "urn:uuid:4efde3eb-6f6e-4d3c-aff6-0c0b745094cd", "cell": { "columnId": "Digital Bazaar", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12779,7 +14968,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57133, + "_idleStart": 41511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12800,9 +14989,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:da66773c-ca3d-4532-b049-fa2b80c3e3ef", + "_testId": "urn:uuid:977962f2-0d7d-4266-bcba-b8327ea2cba2", "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.4 Types MUST be followed." @@ -12814,7 +15003,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57133, + "_idleStart": 41512, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12825,7 +15014,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12835,9 +15024,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:4af890cb-8507-482d-8d24-bfb3b44bc4af", + "_testId": "urn:uuid:89b0a5e6-3773-47d6-bccf-dc5a2ebd93f2", "cell": { "columnId": "Digital Bazaar", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -12849,14 +15038,158 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57134, + "_idleStart": 41512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 428, - "state": "passed", - "speed": "slow" + "duration": 55, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "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-07-28T05:07:00Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-07-28T05:07:00Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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": "{\"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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}" + }, + "name": "HTTPError", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify", + "status": 403, + "data": { + "name": "NotAllowedError", + "message": "Authorization error.", + "details": { + "httpStatusCode": 403 + }, + "cause": { + "name": "Error", + "message": "The invoked capability has expired.", + "details": {}, + "cause": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + }, + "stack": "Error: The invoked capability has expired.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:188:13)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "Error" + }, + "stack": "NotAllowedError: Authorization error.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:195:9)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "NotAllowedError" + } + } } ], "root": false, @@ -12875,7 +15208,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -12894,9 +15227,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LBb-Nzb8A7pn0QoJfDCaP", + "parent": "RbmUVII2apinoyF-fDUPI", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:72d30a66-a4b5-4056-9f14-b9d1ca2a2066" + "_testId": "urn:uuid:09dc407a-9493-4e9f-851a-cee81156a06e" }, { "title": "Open Security and Identity", @@ -12916,9 +15249,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:3bb49eed-3bb4-4a03-9f27-312f79f67184", + "_testId": "urn:uuid:e02cadd2-f86e-44d7-81a2-eb15894cc8bc", "cell": { "columnId": "Open Security and Identity", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -12930,7 +15263,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41568, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12951,9 +15284,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:1dc4f23d-7096-4ee9-a323-41b19442eca1", + "_testId": "urn:uuid:da57dc81-85c8-4422-9a83-c9d2021da8d5", "cell": { "columnId": "Open Security and Identity", "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.4 Types MUST be followed." @@ -12965,7 +15298,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41568, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -12976,7 +15309,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12986,9 +15319,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:f1f83328-a576-4994-a707-b63fa91928d3", + "_testId": "urn:uuid:6ffd26cc-6cde-4a1c-9f96-962abf8fa78b", "cell": { "columnId": "Open Security and Identity", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -13000,12 +15333,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41569, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 35, "state": "failed", "err": { "response": {}, @@ -13013,7 +15346,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-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", + "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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -13037,29 +15370,29 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "assertionMethod", - "proofValue": "zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7" + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" } }, "options": { "checks": [ "proof" ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" } }, "agent": { @@ -13149,13 +15482,13 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "_error": null } ], @@ -13168,9 +15501,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LBb-Nzb8A7pn0QoJfDCaP", + "parent": "RbmUVII2apinoyF-fDUPI", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:51f7a4d3-309d-421c-af88-0f1ffed02ff0" + "_testId": "urn:uuid:fecd6580-4ea8-43d9-b380-15b73b8a4f1a" }, { "title": "SpruceID", @@ -13190,9 +15523,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:b5d10f06-0135-4b49-a20b-05caa3057bdc", + "_testId": "urn:uuid:4123fe46-cd39-4b3a-a4fc-cffbbd1e0b26", "cell": { "columnId": "SpruceID", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -13204,7 +15537,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13225,9 +15558,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:9edbb513-49a5-4bd4-b73b-1c223b2072e1", + "_testId": "urn:uuid:e005084b-2ec0-40bf-8a29-e1ad211baf9f", "cell": { "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.4 Types MUST be followed." @@ -13239,7 +15572,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13250,7 +15583,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13260,9 +15593,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:caa2bc43-60f9-4c6e-ba11-e088650c531b", + "_testId": "urn:uuid:a68b7742-515b-4a75-98e3-f16ea870c9f5", "cell": { "columnId": "SpruceID", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -13274,12 +15607,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 417, + "duration": 303, "state": "passed", "speed": "slow" } @@ -13300,7 +15633,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -13319,9 +15652,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "LBb-Nzb8A7pn0QoJfDCaP", + "parent": "RbmUVII2apinoyF-fDUPI", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:9a8857bf-d471-44bc-a7ff-44666907e050" + "_testId": "urn:uuid:e1c8a4e2-65a2-4c4b-93ca-707835d1699a" } ], "root": false, @@ -13337,13 +15670,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:fd3eb45c-c903-4020-9a69-c03529314b13", + "_testId": "urn:uuid:18dbd4aa-60ff-46ea-a92c-58532196d561", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -13353,6 +15686,7 @@ "rows": [ { "id": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=verifiable%20presentation.-,If%20present%2C%20the%20normative%20guidance%20in%20Section%204.3%20Identifiers%20MUST%20be%20followed.,-type", "cells": [ { "type": "test", @@ -13367,9 +15701,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:a1089428-0093-4f9e-9a23-cb46da723b4a", + "_testId": "urn:uuid:77f12a73-443b-4809-88b0-a6a4dd7dae32", "cell": { "columnId": "apicatalog.com", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -13381,7 +15715,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13402,9 +15736,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:a486bd9c-7922-44f5-9870-93ac2ba40831", + "_testId": "urn:uuid:4efde3eb-6f6e-4d3c-aff6-0c0b745094cd", "cell": { "columnId": "Digital Bazaar", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -13416,7 +15750,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57133, + "_idleStart": 41511, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13437,9 +15771,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:3bb49eed-3bb4-4a03-9f27-312f79f67184", + "_testId": "urn:uuid:e02cadd2-f86e-44d7-81a2-eb15894cc8bc", "cell": { "columnId": "Open Security and Identity", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -13451,7 +15785,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41568, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13472,9 +15806,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:b5d10f06-0135-4b49-a20b-05caa3057bdc", + "_testId": "urn:uuid:4123fe46-cd39-4b3a-a4fc-cffbbd1e0b26", "cell": { "columnId": "SpruceID", "rowId": "If [the `id` field is] present, the normative guidance in Section 4.3 Identifiers MUST be followed." @@ -13486,7 +15820,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13498,6 +15832,7 @@ }, { "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.4 Types MUST be followed.", + "link": "https://w3c.github.io/vc-data-model/#verifiable-credentials:~: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.4%20Types%20MUST%20be%20followed.", "cells": [ { "type": "test", @@ -13512,9 +15847,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:27c724c8-b004-4406-acbf-ba337833550f", + "_testId": "urn:uuid:9df5a389-983a-4a28-be3d-3d564138c295", "cell": { "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.4 Types MUST be followed." @@ -13526,7 +15861,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13547,9 +15882,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:da66773c-ca3d-4532-b049-fa2b80c3e3ef", + "_testId": "urn:uuid:977962f2-0d7d-4266-bcba-b8327ea2cba2", "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.4 Types MUST be followed." @@ -13561,7 +15896,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57133, + "_idleStart": 41512, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13582,9 +15917,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:1dc4f23d-7096-4ee9-a323-41b19442eca1", + "_testId": "urn:uuid:da57dc81-85c8-4422-9a83-c9d2021da8d5", "cell": { "columnId": "Open Security and Identity", "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.4 Types MUST be followed." @@ -13596,7 +15931,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41568, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13617,9 +15952,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:9edbb513-49a5-4bd4-b73b-1c223b2072e1", + "_testId": "urn:uuid:e005084b-2ec0-40bf-8a29-e1ad211baf9f", "cell": { "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.4 Types MUST be followed." @@ -13631,7 +15966,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -13643,11 +15978,12 @@ }, { "id": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs).", + "link": "https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%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 be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13657,9 +15993,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Hg8dts9OpFnomcMBPVSxd", + "parent": "4NyX-fa4AXoC1cycRJiSW", "ctx": null, - "_testId": "urn:uuid:b8d9345b-e379-44b3-88d4-15936cb249f7", + "_testId": "urn:uuid:2435a5c3-5a22-44aa-9ad3-747f571dd72d", "cell": { "columnId": "apicatalog.com", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -13671,12 +16007,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57053, + "_idleStart": 41463, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, + "duration": 46, "state": "failed", "err": { "response": {}, @@ -13684,7 +16020,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-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", + "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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -13708,29 +16044,29 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "assertionMethod", - "proofValue": "zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7" + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" } }, "options": { "checks": [ "proof" ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" } }, "agent": { @@ -13814,7 +16150,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13824,9 +16160,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "89Pn4SyVXCixcbhFYy0iH", + "parent": "qX07VICDYLbOOfLbLJ-jv", "ctx": null, - "_testId": "urn:uuid:4af890cb-8507-482d-8d24-bfb3b44bc4af", + "_testId": "urn:uuid:89b0a5e6-3773-47d6-bccf-dc5a2ebd93f2", "cell": { "columnId": "Digital Bazaar", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -13838,19 +16174,163 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57134, + "_idleStart": 41512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 428, - "state": "passed", - "speed": "slow" + "duration": 55, + "state": "failed", + "err": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "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-07-28T05:07:00Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" + } + } + ], + "proof": { + "type": "DataIntegrityProof", + "created": "2024-07-28T05:07:00Z", + "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", + "cryptosuite": "eddsa-2022", + "proofPurpose": "authentication", + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" + } + }, + "options": { + "checks": [ + "proof" + ], + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" + } + }, + "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": "{\"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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}" + }, + "name": "HTTPError", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify", + "status": 403, + "data": { + "name": "NotAllowedError", + "message": "Authorization error.", + "details": { + "httpStatusCode": 403 + }, + "cause": { + "name": "Error", + "message": "The invoked capability has expired.", + "details": {}, + "cause": { + "message": "An unspecified error occurred.", + "name": "OperationError", + "type": "OperationError" + }, + "stack": "Error: The invoked capability has expired.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:188:13)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "Error" + }, + "stack": "NotAllowedError: Authorization error.\n at onError (file:///home/node/app/node_modules/@bedrock/service-core/lib/http/middleware.js:195:9)\n at Module.handleError (file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/helpers.js:145:12)\n at file:///home/node/app/node_modules/@digitalbazaar/ezcap-express/lib/authorize.js:137:15\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", + "type": "NotAllowedError" + } + } }, { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13860,9 +16340,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "2PlMN5X89QFB9p_f4bxFq", + "parent": "qZTlXnjB_y7uSM8ja_l85", "ctx": null, - "_testId": "urn:uuid:f1f83328-a576-4994-a707-b63fa91928d3", + "_testId": "urn:uuid:6ffd26cc-6cde-4a1c-9f96-962abf8fa78b", "cell": { "columnId": "Open Security and Identity", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -13874,12 +16354,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57562, + "_idleStart": 41569, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 35, "state": "failed", "err": { "response": {}, @@ -13887,7 +16367,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-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-21T05:07:05Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\",\"proofValue\":\"z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uHKJJtjugK1NYkhDYi2LMKw\"}}", + "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-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3\"}}],\"proof\":{\"type\":\"DataIntegrityProof\",\"created\":\"2024-07-28T05:07:00Z\",\"verificationMethod\":\"did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj\",\"cryptosuite\":\"eddsa-2022\",\"proofPurpose\":\"authentication\",\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\",\"proofValue\":\"z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k\"}},\"options\":{\"checks\":[\"proof\"],\"challenge\":\"uB9mN_bAqaY4jE4q00s5dsA\"}}", "method": "POST", "json": { "verifiablePresentation": { @@ -13911,29 +16391,29 @@ }, "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "assertionMethod", - "proofValue": "zbeFQ5J9i21JKf8pAa5qpbQSVDMok1QTN8QGDjK27T5kkZxp7kD3WJvez37AVXapyiN1iDGrKU12yZLBzDG4Pbk7" + "proofValue": "z5zqJKyzWn5fFXLxwVqvzSy38C5LuHzz8tRTP38DFPCyd5wxzqEfcKPduwRUKdbjnQrnzTDZ3iUwenSmJ3Ui9GAM3" } } ], "proof": { "type": "DataIntegrityProof", - "created": "2024-07-21T05:07:05Z", + "created": "2024-07-28T05:07:00Z", "verificationMethod": "did:key:z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj#z6MkpJySvETLnxhQG9DzEdmKJtysBDjuuTeDfUj1uNNCUqcj", "cryptosuite": "eddsa-2022", "proofPurpose": "authentication", - "challenge": "uHKJJtjugK1NYkhDYi2LMKw", - "proofValue": "z4ABeMGSvXKYQF1AUstRE1Xr6AaqfnbVQGyW53FHZMYt318hxzZmVdSzKnb3VkJ5Bmzd2gEY3y5fnGie24ogELJiq" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA", + "proofValue": "z4X4MevuWPgvSvoqwfZtPteJfmz51AmBGBPyA113w6NfEJrFdLPPr74ZBVFsvbTQWFVYpgSbteTY8PpRYu3KSMN3k" } }, "options": { "checks": [ "proof" ], - "challenge": "uHKJJtjugK1NYkhDYi2LMKw" + "challenge": "uB9mN_bAqaY4jE4q00s5dsA" } }, "agent": { @@ -14009,7 +16489,7 @@ { "type": "test", "title": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, 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-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')));\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#verifiable-credentials:~:text=The%20verifiableCredential%20property%20MAY%20be%20present.%20The%20value%20MUST%20be%20one%20or%20more%20verifiable%20credential%20and/or%20enveloped%20verifiable%20credential%20objects%20(to%20be%20clear%2C%20the%20values%20MUST%20NOT%20be%20non%2Dobject%20values%20such%20as%20numbers%2C%20strings%2C%20or%20URLs).`;\n //FIXME remove the internal prove once VC-API presentation\n //creation is stabilized\n const presentationWithCredential = await endpoints.createVp({\n presentation: require('./input/presentation-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredential,\n verifyPresentationOptions\n );\n // FIXME support for derived VCs is not standard yet\n // and probably will be its own test suite\n //await endpoints.verifyVp(require(\n // './input/presentation-derived-vc-ok.json'));\n\n // FIXME remove internal prove once VC-API presentation\n // creation is finalized\n const presentationWithCredentials = await endpoints.createVp({\n presentation: require('./input/presentation-multiple-vc-ok.json'),\n options: createOptions\n });\n await endpoints.verifyVp(\n presentationWithCredentials,\n verifyPresentationOptions\n );\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-vc-missing-required-type-fail.json')),\n 'Failed to reject a VP containing a VC with no `type` value.');\n await assert.rejects(endpoints.verifyVp(require(\n './input/presentation-derived-vc-missing-required-type-fail.json')),\n 'Failed to reject a derived VP with a missing `type`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14019,9 +16499,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fipCNgDV_qMM7QR__ioDp", + "parent": "fVTWeo1q7hhwOEV3rTE9Y", "ctx": null, - "_testId": "urn:uuid:caa2bc43-60f9-4c6e-ba11-e088650c531b", + "_testId": "urn:uuid:a68b7742-515b-4a75-98e3-f16ea870c9f5", "cell": { "columnId": "SpruceID", "rowId": "The verifiableCredential property MAY be present. The value MUST be one or more verifiable credential and/or enveloped verifiable credential objects (to be clear, the values MUST NOT be non-object values such as numbers, strings, or URLs)." @@ -14033,12 +16513,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 57654, + "_idleStart": 41605, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 417, + "duration": 303, "state": "passed", "speed": "slow" } @@ -14068,9 +16548,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:102c2212-6ba7-4d48-aeeb-2b57886c19f0", + "_testId": "urn:uuid:3e865033-41c9-41f5-aa2a-9a4ae5f4f08e", "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." @@ -14082,7 +16562,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58071, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14103,9 +16583,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:1ae3d8d2-0100-4640-819e-0bb3dbdeaa93", + "_testId": "urn:uuid:ecead009-d7c7-481d-887d-0141ded347c1", "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]." @@ -14117,12 +16597,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58071, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending" }, { @@ -14138,9 +16618,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:dfc9f47e-6d41-4b21-9c1f-5dcc240c5de8", + "_testId": "urn:uuid:a59b67d7-8c46-4901-afd9-e0bd1dce689d", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -14152,7 +16632,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14177,7 +16657,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -14196,9 +16676,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "42SqLiT6elw97fwEgJe2h", + "parent": "RgKec5fsrlE5OHwlyQtEQ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:86833ae1-140c-479f-b59d-b330092cd9c1" + "_testId": "urn:uuid:046e47ac-5aa8-46df-8a5d-c99744cc9bf8" }, { "title": "Digital Bazaar", @@ -14218,9 +16698,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:0941047a-0ea4-4b02-abbc-07514471360d", + "_testId": "urn:uuid:946d3f32-e998-4658-a63a-aac8abc830b8", "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." @@ -14232,7 +16712,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14253,9 +16733,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:fb9e91cb-8885-4165-aee0-4ecb69f66acb", + "_testId": "urn:uuid:238943ab-4002-4160-99f4-ae0f15732d74", "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]." @@ -14267,7 +16747,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14288,9 +16768,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:eaa671c1-5935-47e8-bbe9-bdd51957f615", + "_testId": "urn:uuid:1d334cb1-abc9-4a1c-9240-3525c659b8fc", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -14302,7 +16782,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14327,7 +16807,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -14346,9 +16826,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "42SqLiT6elw97fwEgJe2h", + "parent": "RgKec5fsrlE5OHwlyQtEQ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:0f041164-f858-45a3-8690-7cca55a66a34" + "_testId": "urn:uuid:70b8b137-705f-4543-bc2f-227d68a4569f" }, { "title": "Open Security and Identity", @@ -14368,9 +16848,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:c0f19199-ff41-430d-940b-a92171b383f4", + "_testId": "urn:uuid:9b629f53-bc0d-4efa-8e5f-0ffa13d2d8e1", "cell": { "columnId": "Open Security and Identity", "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." @@ -14382,7 +16862,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14403,9 +16883,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:55023119-a504-410e-bffb-a685698820ae", + "_testId": "urn:uuid:353ad852-85c2-42d5-97d6-f194f198b293", "cell": { "columnId": "Open Security and Identity", "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]." @@ -14417,7 +16897,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14438,9 +16918,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:96e7de5a-a48d-47a3-8d8d-2b7fccd5cffd", + "_testId": "urn:uuid:27fe141f-7443-433b-b61a-7dd6fc941b19", "cell": { "columnId": "Open Security and Identity", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -14452,7 +16932,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14477,7 +16957,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -14496,9 +16976,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "42SqLiT6elw97fwEgJe2h", + "parent": "RgKec5fsrlE5OHwlyQtEQ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:709c0d35-0a54-450c-9ad9-63418b32264d" + "_testId": "urn:uuid:d19244d9-3136-424b-aec7-bbb382c5e565" }, { "title": "SpruceID", @@ -14518,9 +16998,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:442183dc-c982-4f78-b81b-621c359a082a", + "_testId": "urn:uuid:51a66da1-4f15-4be6-80a3-9d654d36525d", "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." @@ -14532,7 +17012,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14553,9 +17033,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:b332db9d-d3c0-4aa9-80e3-c4f4468acde2", + "_testId": "urn:uuid:8f8fd6c7-8d48-4bcd-9129-f35ee2efe55e", "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]." @@ -14567,7 +17047,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14588,9 +17068,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:0bd32c54-3e28-4106-a28d-ad66f51bc340", + "_testId": "urn:uuid:0f5f953e-fe95-4799-a4ce-3507fe5ab4be", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -14602,7 +17082,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14627,7 +17107,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -14646,9 +17126,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "42SqLiT6elw97fwEgJe2h", + "parent": "RgKec5fsrlE5OHwlyQtEQ", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:e01b075d-4bb6-41a3-b28c-007686cc0e39" + "_testId": "urn:uuid:b8d73c7e-1028-48dd-862d-fe2258398566" } ], "root": false, @@ -14664,13 +17144,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:9327dd31-41f2-4fc5-ad3e-5aad7df65edb", + "_testId": "urn:uuid:70c4c8fc-4eba-43ab-8df7-4827cd0e1979", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -14680,6 +17160,7 @@ "rows": [ { "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.", "cells": [ { "type": "test", @@ -14694,9 +17175,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:102c2212-6ba7-4d48-aeeb-2b57886c19f0", + "_testId": "urn:uuid:3e865033-41c9-41f5-aa2a-9a4ae5f4f08e", "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." @@ -14708,7 +17189,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58071, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14729,9 +17210,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:0941047a-0ea4-4b02-abbc-07514471360d", + "_testId": "urn:uuid:946d3f32-e998-4658-a63a-aac8abc830b8", "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." @@ -14743,7 +17224,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14764,9 +17245,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:c0f19199-ff41-430d-940b-a92171b383f4", + "_testId": "urn:uuid:9b629f53-bc0d-4efa-8e5f-0ffa13d2d8e1", "cell": { "columnId": "Open Security and Identity", "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." @@ -14778,7 +17259,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14799,9 +17280,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:442183dc-c982-4f78-b81b-621c359a082a", + "_testId": "urn:uuid:51a66da1-4f15-4be6-80a3-9d654d36525d", "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." @@ -14813,7 +17294,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14825,6 +17306,7 @@ }, { "id": "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].", + "link": "https://w3c.github.io/vc-data-model/#enveloped-verifiable-credentials:~:text=The%20id%20value%20of%20the%20object%20MUST%20be%20a%20data%3A%20URL%20%5BRFC2397%5D%20that%20expresses%20a%20secured%20verifiable%20credential%20using%20an%20enveloping%20security%20scheme%2C%20such%20as%20Securing%20Verifiable%20Credentials%20using%20JOSE%20and%20COSE%20%5BVC%2DJOSE%2DCOSE%5D.", "cells": [ { "type": "test", @@ -14839,9 +17321,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:1ae3d8d2-0100-4640-819e-0bb3dbdeaa93", + "_testId": "urn:uuid:ecead009-d7c7-481d-887d-0141ded347c1", "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]." @@ -14853,12 +17335,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58071, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending" }, { @@ -14874,9 +17356,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:fb9e91cb-8885-4165-aee0-4ecb69f66acb", + "_testId": "urn:uuid:238943ab-4002-4160-99f4-ae0f15732d74", "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]." @@ -14888,7 +17370,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14909,9 +17391,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:55023119-a504-410e-bffb-a685698820ae", + "_testId": "urn:uuid:353ad852-85c2-42d5-97d6-f194f198b293", "cell": { "columnId": "Open Security and Identity", "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]." @@ -14923,7 +17405,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14944,9 +17426,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:b332db9d-d3c0-4aa9-80e3-c4f4468acde2", + "_testId": "urn:uuid:8f8fd6c7-8d48-4bcd-9129-f35ee2efe55e", "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]." @@ -14958,7 +17440,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -14970,6 +17452,7 @@ }, { "id": "The type value of the object MUST be EnvelopedVerifiableCredential.", + "link": "https://w3c.github.io/vc-data-model/#enveloped-verifiable-credentials:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiableCredential.", "cells": [ { "type": "test", @@ -14984,9 +17467,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "SlB-hDXYc02_m94daXGhu", + "parent": "-iMmJayepK6rqtajB1qnA", "ctx": null, - "_testId": "urn:uuid:dfc9f47e-6d41-4b21-9c1f-5dcc240c5de8", + "_testId": "urn:uuid:a59b67d7-8c46-4901-afd9-e0bd1dce689d", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -14998,7 +17481,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15019,9 +17502,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "k0b2IuDgPb8TRysOtSwaj", + "parent": "LzI-v_lz-WywEHpsYgbs8", "ctx": null, - "_testId": "urn:uuid:eaa671c1-5935-47e8-bbe9-bdd51957f615", + "_testId": "urn:uuid:1d334cb1-abc9-4a1c-9240-3525c659b8fc", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -15033,7 +17516,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41909, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15054,9 +17537,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "bWs2WYdXUMq6RtqvrtOHH", + "parent": "jQuRmUgN7OfS9s9dFG8qj", "ctx": null, - "_testId": "urn:uuid:96e7de5a-a48d-47a3-8d8d-2b7fccd5cffd", + "_testId": "urn:uuid:27fe141f-7443-433b-b61a-7dd6fc941b19", "cell": { "columnId": "Open Security and Identity", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -15068,7 +17551,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58072, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15089,9 +17572,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "7Pgvh1awjKNz_fctEyloW", + "parent": "M0JzgetUA27XQeqeeugmb", "ctx": null, - "_testId": "urn:uuid:0bd32c54-3e28-4106-a28d-ad66f51bc340", + "_testId": "urn:uuid:0f5f953e-fe95-4799-a4ce-3507fe5ab4be", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiableCredential." @@ -15103,7 +17586,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15137,9 +17620,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:28afaaa2-1332-4d96-b96f-92b5aaca85a0", + "_testId": "urn:uuid:b5160f54-2ef1-40f0-a197-99bbbec43f2b", "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." @@ -15151,7 +17634,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15172,9 +17655,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:730aeb58-408e-4354-aa75-7aaafcabc201", + "_testId": "urn:uuid:226a2b2e-4dec-4305-84f8-3e12674b44bf", "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]." @@ -15186,7 +17669,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15207,9 +17690,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:48af8b8c-7d9a-42f8-be15-c66c3b514596", + "_testId": "urn:uuid:c168ee41-085b-465a-9886-9d77bf628a27", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -15221,7 +17704,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15246,7 +17729,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -15265,9 +17748,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "WV4xjnaVY5rAoVV49rsCu", + "parent": "ldeh9QjZniFIEaF3efW-Y", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:0073cc8c-de4f-4f33-aeb2-0b21c1545047" + "_testId": "urn:uuid:64280df0-b3ad-441d-b556-8873348790fc" }, { "title": "Digital Bazaar", @@ -15287,9 +17770,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:9215d5a5-c8aa-4a7d-b7b3-6a007a997e59", + "_testId": "urn:uuid:bfbe8d58-557c-4119-b94e-26e9a2ab24c8", "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." @@ -15301,7 +17784,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15322,9 +17805,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:118dee11-3421-4658-a02b-7348ddbf89f4", + "_testId": "urn:uuid:fa31c301-dc8f-40b6-bf79-9b3c41bc8bab", "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]." @@ -15336,7 +17819,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15357,9 +17840,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:add56f6f-de65-4e1b-ae1d-2cbc7202e1b0", + "_testId": "urn:uuid:fb861af8-a57d-48ab-82b0-274d4c099b03", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -15371,7 +17854,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15396,7 +17879,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -15415,9 +17898,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "WV4xjnaVY5rAoVV49rsCu", + "parent": "ldeh9QjZniFIEaF3efW-Y", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:1eb4c51e-b265-4aac-9deb-205c1b96e656" + "_testId": "urn:uuid:ec8529c3-9c68-42b5-b092-c2495bf4fa5d" }, { "title": "Open Security and Identity", @@ -15437,9 +17920,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:363f7c34-e0d9-4a85-9654-5a630de9c678", + "_testId": "urn:uuid:96d3943a-330e-4d25-87ef-07c5739d6a92", "cell": { "columnId": "Open Security and Identity", "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." @@ -15451,7 +17934,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15472,9 +17955,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:ace4b9e4-6492-4352-82bf-2420114b5424", + "_testId": "urn:uuid:1b757eb7-29b1-4c0a-b124-eabbaabdd469", "cell": { "columnId": "Open Security and Identity", "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]." @@ -15486,7 +17969,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15507,9 +17990,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:2b364c50-edcb-41de-8909-f66087ed9771", + "_testId": "urn:uuid:7b148f4a-7572-4883-aee4-6573dd398395", "cell": { "columnId": "Open Security and Identity", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -15521,7 +18004,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15546,7 +18029,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -15565,9 +18048,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "WV4xjnaVY5rAoVV49rsCu", + "parent": "ldeh9QjZniFIEaF3efW-Y", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:262d5af0-836a-43ba-8763-1ebf0fada8a6" + "_testId": "urn:uuid:bfe0feb3-7edf-4119-b5c6-28e0d0e45b19" }, { "title": "SpruceID", @@ -15587,9 +18070,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:0ef80bdf-69a1-4962-8911-a73996fc56ab", + "_testId": "urn:uuid:60556d20-6fd5-4bdd-bcc9-1a1786c1c411", "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." @@ -15601,7 +18084,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15622,9 +18105,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:7f92911a-4702-47d7-a1fe-0923dc90cc49", + "_testId": "urn:uuid:b8fe5faa-6481-4f7c-87a3-bc3dcca469d3", "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]." @@ -15636,7 +18119,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15657,9 +18140,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:290a8788-cea8-455d-b20b-847481ce88a4", + "_testId": "urn:uuid:d9081b3b-4d14-4caa-ba54-57d714ddd450", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -15671,7 +18154,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15696,7 +18179,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -15715,9 +18198,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "WV4xjnaVY5rAoVV49rsCu", + "parent": "ldeh9QjZniFIEaF3efW-Y", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:8ed6dd28-b40d-47bd-9878-41f186276107" + "_testId": "urn:uuid:69dcd5a9-9440-499c-a8b4-273b8cdd8fe4" } ], "root": false, @@ -15733,13 +18216,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:c12efad3-378b-4fcb-a05c-12e702c198d2", + "_testId": "urn:uuid:2bd57c80-2fbc-4ec2-81e0-fccd8c89ae5a", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -15749,6 +18232,7 @@ "rows": [ { "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 EnvelopedVerifiablePresentation terms as defined by the base context provided by this specification.", + "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.", "cells": [ { "type": "test", @@ -15763,9 +18247,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:28afaaa2-1332-4d96-b96f-92b5aaca85a0", + "_testId": "urn:uuid:b5160f54-2ef1-40f0-a197-99bbbec43f2b", "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." @@ -15777,7 +18261,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41910, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15798,9 +18282,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:9215d5a5-c8aa-4a7d-b7b3-6a007a997e59", + "_testId": "urn:uuid:bfbe8d58-557c-4119-b94e-26e9a2ab24c8", "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." @@ -15812,7 +18296,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15833,9 +18317,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:363f7c34-e0d9-4a85-9654-5a630de9c678", + "_testId": "urn:uuid:96d3943a-330e-4d25-87ef-07c5739d6a92", "cell": { "columnId": "Open Security and Identity", "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." @@ -15847,7 +18331,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15868,9 +18352,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:0ef80bdf-69a1-4962-8911-a73996fc56ab", + "_testId": "urn:uuid:60556d20-6fd5-4bdd-bcc9-1a1786c1c411", "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." @@ -15882,7 +18366,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15894,6 +18378,7 @@ }, { "id": "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].", + "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.", "cells": [ { "type": "test", @@ -15908,9 +18393,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:730aeb58-408e-4354-aa75-7aaafcabc201", + "_testId": "urn:uuid:226a2b2e-4dec-4305-84f8-3e12674b44bf", "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]." @@ -15922,7 +18407,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15943,9 +18428,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:118dee11-3421-4658-a02b-7348ddbf89f4", + "_testId": "urn:uuid:fa31c301-dc8f-40b6-bf79-9b3c41bc8bab", "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]." @@ -15957,7 +18442,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -15978,9 +18463,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:ace4b9e4-6492-4352-82bf-2420114b5424", + "_testId": "urn:uuid:1b757eb7-29b1-4c0a-b124-eabbaabdd469", "cell": { "columnId": "Open Security and Identity", "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]." @@ -15992,7 +18477,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16013,9 +18498,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:7f92911a-4702-47d7-a1fe-0923dc90cc49", + "_testId": "urn:uuid:b8fe5faa-6481-4f7c-87a3-bc3dcca469d3", "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]." @@ -16027,7 +18512,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16039,6 +18524,7 @@ }, { "id": "The type value of the object MUST be EnvelopedVerifiablePresentation.", + "link": "https://w3c.github.io/vc-data-model/#enveloped-verifiable-presentations:~:text=The%20type%20value%20of%20the%20object%20MUST%20be%20EnvelopedVerifiablePresentation.", "cells": [ { "type": "test", @@ -16053,9 +18539,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "lHLH6Kn-F9eqy-x8ibkDQ", + "parent": "993XWq8r1xZ28DL0uZT8g", "ctx": null, - "_testId": "urn:uuid:48af8b8c-7d9a-42f8-be15-c66c3b514596", + "_testId": "urn:uuid:c168ee41-085b-465a-9886-9d77bf628a27", "cell": { "columnId": "apicatalog.com", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -16067,7 +18553,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58073, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16088,9 +18574,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "-yDyZHyeXA0415MKgjs2o", + "parent": "CYpdJLhiA18m9SDlzb_Co", "ctx": null, - "_testId": "urn:uuid:add56f6f-de65-4e1b-ae1d-2cbc7202e1b0", + "_testId": "urn:uuid:fb861af8-a57d-48ab-82b0-274d4c099b03", "cell": { "columnId": "Digital Bazaar", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -16102,7 +18588,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41911, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16123,9 +18609,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "unlm5QjM_1iHt8J3eO_Ew", + "parent": "pBMVd8AZppi_j03MI9YBD", "ctx": null, - "_testId": "urn:uuid:2b364c50-edcb-41de-8909-f66087ed9771", + "_testId": "urn:uuid:7b148f4a-7572-4883-aee4-6573dd398395", "cell": { "columnId": "Open Security and Identity", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -16137,7 +18623,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16158,9 +18644,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "RETGQJ1r5umCOPwEVIsV8", + "parent": "-K8WZSJImYxBz5Ly7t4xF", "ctx": null, - "_testId": "urn:uuid:290a8788-cea8-455d-b20b-847481ce88a4", + "_testId": "urn:uuid:d9081b3b-4d14-4caa-ba54-57d714ddd450", "cell": { "columnId": "SpruceID", "rowId": "The type value of the object MUST be EnvelopedVerifiablePresentation." @@ -16172,7 +18658,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58074, + "_idleStart": 41912, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16206,9 +18692,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "dROYrfL1MZUI7P0b6YjDe", + "parent": "z14tW2GQEI48b5mVPtDI6", "ctx": null, - "_testId": "urn:uuid:f4187220-a7f4-4d21-b63f-0ee730c9dd7b", + "_testId": "urn:uuid:c8ff6b3d-1396-493b-a179-d95e5fecc552", "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." @@ -16220,7 +18706,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16241,9 +18727,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "dROYrfL1MZUI7P0b6YjDe", + "parent": "z14tW2GQEI48b5mVPtDI6", "ctx": null, - "_testId": "urn:uuid:b47ae8fd-429d-4f13-a94d-04fa74cad63f", + "_testId": "urn:uuid:01fdfb9d-26a2-4b3b-9082-c2317169712a", "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." @@ -16255,7 +18741,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16280,7 +18766,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "dROYrfL1MZUI7P0b6YjDe", + "parent": "z14tW2GQEI48b5mVPtDI6", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -16299,9 +18785,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "bmsuOb02VsbXiS2DHmY3F", + "parent": "LLNiVHQ03oRJpK6lOKQMe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:3b80fe66-67a1-49af-b770-0b5380773801" + "_testId": "urn:uuid:5d89b6df-1690-4925-a6e8-b8d4fcc02c66" }, { "title": "Digital Bazaar", @@ -16321,9 +18807,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "oIgR3CLJ9EFfAag4pyqg6", + "parent": "GtU5fMT1iAxykx0RWwPQS", "ctx": null, - "_testId": "urn:uuid:eaf195d7-5e4a-4e8a-822e-1ecb939df27f", + "_testId": "urn:uuid:73bb6a5b-6c61-4472-8e35-23e11a5bfb98", "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." @@ -16335,7 +18821,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16356,9 +18842,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "oIgR3CLJ9EFfAag4pyqg6", + "parent": "GtU5fMT1iAxykx0RWwPQS", "ctx": null, - "_testId": "urn:uuid:69037293-60d8-42f7-896a-d39492da4696", + "_testId": "urn:uuid:b054add9-928c-4bcc-b6a2-8fb82ab504ec", "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." @@ -16370,7 +18856,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16395,7 +18881,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "oIgR3CLJ9EFfAag4pyqg6", + "parent": "GtU5fMT1iAxykx0RWwPQS", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -16414,9 +18900,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "bmsuOb02VsbXiS2DHmY3F", + "parent": "LLNiVHQ03oRJpK6lOKQMe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:cee35f78-0124-4e61-8691-5e04037294a9" + "_testId": "urn:uuid:404f96e6-7a5e-4e95-9add-0c11c873949f" }, { "title": "Open Security and Identity", @@ -16436,9 +18922,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "eU2eN_yxbK2f4Qxp0uBPv", + "parent": "LYAhnH2A2MUzHrPFgMt1L", "ctx": null, - "_testId": "urn:uuid:7acc96ef-0f35-4e7a-aed6-ca990ef96153", + "_testId": "urn:uuid:87a95bcf-8b7c-40e4-ba4e-364342891a31", "cell": { "columnId": "Open Security and Identity", "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." @@ -16450,7 +18936,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16471,9 +18957,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "eU2eN_yxbK2f4Qxp0uBPv", + "parent": "LYAhnH2A2MUzHrPFgMt1L", "ctx": null, - "_testId": "urn:uuid:c9b87518-1455-44a6-9607-c81279bf7f6b", + "_testId": "urn:uuid:3e97f832-6ae3-4dc9-a993-2129a21da372", "cell": { "columnId": "Open Security and Identity", "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." @@ -16485,7 +18971,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16510,7 +18996,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "eU2eN_yxbK2f4Qxp0uBPv", + "parent": "LYAhnH2A2MUzHrPFgMt1L", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -16529,9 +19015,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "bmsuOb02VsbXiS2DHmY3F", + "parent": "LLNiVHQ03oRJpK6lOKQMe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:7eaaa7bc-e296-42f6-a108-b849f5f76bfe" + "_testId": "urn:uuid:15e83c37-f30f-4a68-8bf5-39bfc29c35fd" }, { "title": "SpruceID", @@ -16551,9 +19037,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "npjrrSLwXO995c8vMmI21", + "parent": "tSIaN_ClqyBUsWhZdwgXE", "ctx": null, - "_testId": "urn:uuid:19710a3f-cd03-428a-909b-47233175d128", + "_testId": "urn:uuid:084c8f08-5350-45fe-bc20-6f74322889e4", "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." @@ -16565,12 +19051,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending" }, { @@ -16586,9 +19072,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "npjrrSLwXO995c8vMmI21", + "parent": "tSIaN_ClqyBUsWhZdwgXE", "ctx": null, - "_testId": "urn:uuid:b5ada9c5-543d-4887-a121-4b81eaa2f219", + "_testId": "urn:uuid:98f44b29-2597-4e62-9fc9-742e72c684ea", "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." @@ -16600,7 +19086,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58076, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16625,7 +19111,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "npjrrSLwXO995c8vMmI21", + "parent": "tSIaN_ClqyBUsWhZdwgXE", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -16644,9 +19130,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "bmsuOb02VsbXiS2DHmY3F", + "parent": "LLNiVHQ03oRJpK6lOKQMe", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:20a888bd-a329-4824-b526-bedd16ef26bc" + "_testId": "urn:uuid:821ddd73-2590-48f9-add5-ab80854e30e9" } ], "root": false, @@ -16662,13 +19148,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:321761a8-2431-491b-a3c9-f614a737fa07", + "_testId": "urn:uuid:c2e3f2f5-06e9-4b6f-a100-5df90fa51d27", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -16678,6 +19164,7 @@ "rows": [ { "id": "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.", + "link": "https://w3c.github.io/vc-data-model/#presentations-including-holder-claims:~:text=A%20verifiable%20presentation%20that%20includes%20a%20self%2Dasserted%20verifiable%20credential%20that%20is%20only%20secured%20using%20the%20same%20mechanism%20as%20the%20verifiable%20presentation%20MUST%20include%20a%20holder%20property.", "cells": [ { "type": "test", @@ -16692,9 +19179,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "dROYrfL1MZUI7P0b6YjDe", + "parent": "z14tW2GQEI48b5mVPtDI6", "ctx": null, - "_testId": "urn:uuid:f4187220-a7f4-4d21-b63f-0ee730c9dd7b", + "_testId": "urn:uuid:c8ff6b3d-1396-493b-a179-d95e5fecc552", "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." @@ -16706,7 +19193,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16727,9 +19214,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "oIgR3CLJ9EFfAag4pyqg6", + "parent": "GtU5fMT1iAxykx0RWwPQS", "ctx": null, - "_testId": "urn:uuid:eaf195d7-5e4a-4e8a-822e-1ecb939df27f", + "_testId": "urn:uuid:73bb6a5b-6c61-4472-8e35-23e11a5bfb98", "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." @@ -16741,7 +19228,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16762,9 +19249,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "eU2eN_yxbK2f4Qxp0uBPv", + "parent": "LYAhnH2A2MUzHrPFgMt1L", "ctx": null, - "_testId": "urn:uuid:7acc96ef-0f35-4e7a-aed6-ca990ef96153", + "_testId": "urn:uuid:87a95bcf-8b7c-40e4-ba4e-364342891a31", "cell": { "columnId": "Open Security and Identity", "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." @@ -16776,7 +19263,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16797,9 +19284,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "npjrrSLwXO995c8vMmI21", + "parent": "tSIaN_ClqyBUsWhZdwgXE", "ctx": null, - "_testId": "urn:uuid:19710a3f-cd03-428a-909b-47233175d128", + "_testId": "urn:uuid:084c8f08-5350-45fe-bc20-6f74322889e4", "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." @@ -16811,18 +19298,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 0, "state": "pending" } ] }, { "id": "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.", + "link": "https://w3c.github.io/vc-data-model/#presentations-including-holder-claims:~:text=When%20a%20self%2Dasserted%20verifiable%20credential%20is%20secured%20using%20the%20same%20mechanism%20as%20the%20verifiable%20presentation%2C%20the%20value%20of%20the%20issuer%20property%20of%20the%20verifiable%20credential%20MUST%20be%20identical%20to%20the%20holder%20property%20of%20the%20verifiable%20presentation.", "cells": [ { "type": "test", @@ -16837,9 +19325,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "dROYrfL1MZUI7P0b6YjDe", + "parent": "z14tW2GQEI48b5mVPtDI6", "ctx": null, - "_testId": "urn:uuid:b47ae8fd-429d-4f13-a94d-04fa74cad63f", + "_testId": "urn:uuid:01fdfb9d-26a2-4b3b-9082-c2317169712a", "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." @@ -16851,7 +19339,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16872,9 +19360,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "oIgR3CLJ9EFfAag4pyqg6", + "parent": "GtU5fMT1iAxykx0RWwPQS", "ctx": null, - "_testId": "urn:uuid:69037293-60d8-42f7-896a-d39492da4696", + "_testId": "urn:uuid:b054add9-928c-4bcc-b6a2-8fb82ab504ec", "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." @@ -16886,7 +19374,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16907,9 +19395,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "eU2eN_yxbK2f4Qxp0uBPv", + "parent": "LYAhnH2A2MUzHrPFgMt1L", "ctx": null, - "_testId": "urn:uuid:c9b87518-1455-44a6-9607-c81279bf7f6b", + "_testId": "urn:uuid:3e97f832-6ae3-4dc9-a993-2129a21da372", "cell": { "columnId": "Open Security and Identity", "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." @@ -16921,7 +19409,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58075, + "_idleStart": 41913, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16942,9 +19430,9 @@ "_currentRetry": 0, "pending": true, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "npjrrSLwXO995c8vMmI21", + "parent": "tSIaN_ClqyBUsWhZdwgXE", "ctx": null, - "_testId": "urn:uuid:b5ada9c5-543d-4887-a121-4b81eaa2f219", + "_testId": "urn:uuid:98f44b29-2597-4e62-9fc9-742e72c684ea", "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." @@ -16956,7 +19444,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58076, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -16980,7 +19468,7 @@ { "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -16990,9 +19478,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:e2ea3365-1a94-4a68-981c-d03a7f6f4221", + "_testId": "urn:uuid:4a5fb5b1-a8f2-4d03-ae2e-062946469206", "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)." @@ -17004,19 +19492,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58076, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 374, + "duration": 402, "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17026,9 +19514,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:5b9eccd2-10b9-4b1d-9d66-67592b8b3efb", + "_testId": "urn:uuid:cd44dd72-e9bf-4446-8506-3d432b9ca07e", "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." @@ -17040,12 +19528,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58450, + "_idleStart": 42317, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 211, + "duration": 204, "state": "failed", "err": { "generatedMessage": false, @@ -17056,7 +19544,7 @@ { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17066,9 +19554,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:f3721893-c05d-43ba-b446-4741a96dd148", + "_testId": "urn:uuid:19643112-517e-4cec-b93f-4700cc76dd12", "cell": { "columnId": "apicatalog.com", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17080,12 +19568,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58662, + "_idleStart": 42520, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 188, + "duration": 294, "state": "passed", "speed": "slow" } @@ -17106,7 +19594,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -17125,9 +19613,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Fjx-dUHcteAZtujvMdq-3", + "parent": "I9uwrwyzdel41IDVUeBbH", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:b256dc2e-5f20-4383-a684-389e15a8241a" + "_testId": "urn:uuid:b2aab0c9-50bd-4c8f-9a24-bcc872e951a7" }, { "title": "Digital Bazaar", @@ -17137,7 +19625,7 @@ { "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17147,9 +19635,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:96f42c40-4d51-443f-8841-9b145172d7b8", + "_testId": "urn:uuid:0c275c09-46c8-4256-aa93-78e9e1353c54", "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)." @@ -17161,19 +19649,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58850, + "_idleStart": 42815, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 276, + "duration": 196, "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17183,9 +19671,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:42e9436f-ee4f-4404-b11a-de6a30176a59", + "_testId": "urn:uuid:880a7c1b-413e-4017-b36b-1f92e3545788", "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." @@ -17197,12 +19685,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59126, + "_idleStart": 43012, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 137, + "duration": 91, "state": "failed", "err": { "generatedMessage": false, @@ -17213,7 +19701,7 @@ { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17223,9 +19711,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:1497bfc8-2fce-4e88-8c73-d689346df294", + "_testId": "urn:uuid:6cacde4a-042a-4fcf-bed6-444d3bb5bd31", "cell": { "columnId": "Digital Bazaar", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17237,12 +19725,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59263, + "_idleStart": 43103, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 91, "state": "passed", "speed": "slow" } @@ -17263,7 +19751,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -17282,9 +19770,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Fjx-dUHcteAZtujvMdq-3", + "parent": "I9uwrwyzdel41IDVUeBbH", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:e157c2cf-2548-4c0d-8b38-310b0e6a96c0" + "_testId": "urn:uuid:78a05349-c0d9-4c64-9466-8d6fea0a5ede" }, { "title": "Open Security and Identity", @@ -17294,7 +19782,7 @@ { "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17304,9 +19792,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:be27eb4d-8e0a-454c-962d-9120d18495d2", + "_testId": "urn:uuid:5bca3f68-df83-4844-87a3-4f404ed22453", "cell": { "columnId": "Open Security and Identity", "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)." @@ -17318,19 +19806,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59398, + "_idleStart": 43194, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 214, + "duration": 171, "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17340,9 +19828,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:f594c1d2-e1a5-49ad-a454-a2079de26354", + "_testId": "urn:uuid:2c66ff43-7926-4744-b12d-5b569b694244", "cell": { "columnId": "Open Security and Identity", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." @@ -17354,19 +19842,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59612, + "_idleStart": 43365, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 252, + "duration": 84, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17376,9 +19864,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:eb80e736-97a2-40c7-9e9d-559273b4ee70", + "_testId": "urn:uuid:5855fc80-255f-4716-b59c-e911efa58fd1", "cell": { "columnId": "Open Security and Identity", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17390,14 +19878,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59864, + "_idleStart": 43449, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 111, + "duration": 59, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -17416,7 +19904,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -17435,9 +19923,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Fjx-dUHcteAZtujvMdq-3", + "parent": "I9uwrwyzdel41IDVUeBbH", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:de4b37e5-af5e-47f0-bf89-7a23792bd2d8" + "_testId": "urn:uuid:a53bdc57-babe-4179-a56b-73e8bafd45b3" }, { "title": "SpruceID", @@ -17447,7 +19935,7 @@ { "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17457,9 +19945,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:e17baf2e-6cad-4173-84e1-a03cf7a82b9a", + "_testId": "urn:uuid:5774c0b2-05f6-427f-a3c7-fbeb745399bd", "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)." @@ -17471,19 +19959,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59975, + "_idleStart": 43509, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 178, + "duration": 142, "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17493,9 +19981,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:2c54a02f-7026-4512-aef7-0c7ccedd42f9", + "_testId": "urn:uuid:2892720d-02f3-49eb-a864-ba51005a8c9c", "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." @@ -17507,19 +19995,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60153, + "_idleStart": 43652, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 254, + "duration": 198, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17529,9 +20017,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:d6f76387-f252-4135-b079-3a9d02fd04a6", + "_testId": "urn:uuid:2c8a3e30-b083-4afb-86e3-3cdbade42a46", "cell": { "columnId": "SpruceID", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17543,14 +20031,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60407, + "_idleStart": 43850, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 69, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -17569,7 +20057,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -17588,9 +20076,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "Fjx-dUHcteAZtujvMdq-3", + "parent": "I9uwrwyzdel41IDVUeBbH", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:78460575-f94a-444e-9300-224ca694275e" + "_testId": "urn:uuid:f058b32f-14e9-4862-a901-aa1e427d4294" } ], "root": false, @@ -17606,13 +20094,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:8495075e-d242-442c-b477-57be8324c0ca", + "_testId": "urn:uuid:054ae76c-b2ff-46b4-b45c-3babc592b73d", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -17622,11 +20110,12 @@ "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17636,9 +20125,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:e2ea3365-1a94-4a68-981c-d03a7f6f4221", + "_testId": "urn:uuid:4a5fb5b1-a8f2-4d03-ae2e-062946469206", "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)." @@ -17650,19 +20139,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58076, + "_idleStart": 41914, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 374, + "duration": 402, "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17672,9 +20161,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:96f42c40-4d51-443f-8841-9b145172d7b8", + "_testId": "urn:uuid:0c275c09-46c8-4256-aa93-78e9e1353c54", "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)." @@ -17686,19 +20175,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58850, + "_idleStart": 42815, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 276, + "duration": 196, "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17708,9 +20197,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:be27eb4d-8e0a-454c-962d-9120d18495d2", + "_testId": "urn:uuid:5bca3f68-df83-4844-87a3-4f404ed22453", "cell": { "columnId": "Open Security and Identity", "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)." @@ -17722,19 +20211,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59398, + "_idleStart": 43194, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 214, + "duration": 171, "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 endpoints.issue(require('./input/credential-schema-ok.json'));\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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, @@ -17744,9 +20233,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:e17baf2e-6cad-4173-84e1-a03cf7a82b9a", + "_testId": "urn:uuid:5774c0b2-05f6-427f-a3c7-fbeb745399bd", "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)." @@ -17758,12 +20247,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59975, + "_idleStart": 43509, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 178, + "duration": 142, "state": "passed", "speed": "slow" } @@ -17771,11 +20260,12 @@ }, { "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": "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17785,9 +20275,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:5b9eccd2-10b9-4b1d-9d66-67592b8b3efb", + "_testId": "urn:uuid:cd44dd72-e9bf-4446-8506-3d432b9ca07e", "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." @@ -17799,12 +20289,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58450, + "_idleStart": 42317, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 211, + "duration": 204, "state": "failed", "err": { "generatedMessage": false, @@ -17815,7 +20305,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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17825,9 +20315,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:42e9436f-ee4f-4404-b11a-de6a30176a59", + "_testId": "urn:uuid:880a7c1b-413e-4017-b36b-1f92e3545788", "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." @@ -17839,12 +20329,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59126, + "_idleStart": 43012, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 137, + "duration": 91, "state": "failed", "err": { "generatedMessage": false, @@ -17855,7 +20345,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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17865,9 +20355,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:f594c1d2-e1a5-49ad-a454-a2079de26354", + "_testId": "urn:uuid:2c66ff43-7926-4744-b12d-5b569b694244", "cell": { "columnId": "Open Security and Identity", "rowId": "Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file." @@ -17879,19 +20369,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59612, + "_idleStart": 43365, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 252, + "duration": 84, "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 'Failed to reject credentialSchema without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 '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 'Failed to reject `credentialSchema` without a `type`.');\n await assert.rejects(endpoints.issue(require(\n './input/credential-schema-no-id-fail.json')),\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 'Failed to reject `credentialSchema` with a numerid `id`.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17901,9 +20391,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:2c54a02f-7026-4512-aef7-0c7ccedd42f9", + "_testId": "urn:uuid:2892720d-02f3-49eb-a864-ba51005a8c9c", "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." @@ -17915,12 +20405,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60153, + "_idleStart": 43652, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 254, + "duration": 198, "state": "passed", "speed": "slow" } @@ -17928,11 +20418,12 @@ }, { "id": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.", "cells": [ { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17942,9 +20433,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UG9B5awWv_oMWy3oMTIc8", + "parent": "oO6PDifIdcqaM-fvQj792", "ctx": null, - "_testId": "urn:uuid:f3721893-c05d-43ba-b446-4741a96dd148", + "_testId": "urn:uuid:19643112-517e-4cec-b93f-4700cc76dd12", "cell": { "columnId": "apicatalog.com", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17956,19 +20447,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 58662, + "_idleStart": 42520, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 188, + "duration": 294, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -17978,9 +20469,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "Oz2NYqhNIQ_2rq6hNjdLZ", + "parent": "uKd9bblAijh7O0qat-D5B", "ctx": null, - "_testId": "urn:uuid:1497bfc8-2fce-4e88-8c73-d689346df294", + "_testId": "urn:uuid:6cacde4a-042a-4fcf-bed6-444d3bb5bd31", "cell": { "columnId": "Digital Bazaar", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -17992,19 +20483,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59263, + "_idleStart": 43103, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 135, + "duration": 91, "state": "passed", "speed": "slow" }, { "type": "test", "title": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -18014,9 +20505,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "C01WNbb2C-LBtdfV5VFu1", + "parent": "bJa-6h3tJ4jshzPtEgFm5", "ctx": null, - "_testId": "urn:uuid:eb80e736-97a2-40c7-9e9d-559273b4ee70", + "_testId": "urn:uuid:5855fc80-255f-4716-b59c-e911efa58fd1", "cell": { "columnId": "Open Security and Identity", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -18028,19 +20519,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 59864, + "_idleStart": 43449, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 111, + "duration": 59, "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 credentialSchema 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%20credentialSchema%20type%20property.`;\n await endpoints.issue(require('./input/credential-schemas-ok.json'));\n }", + "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%20credentialSchema%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, @@ -18050,9 +20541,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "zW6ghN5fEQv1ZPPJTbkJX", + "parent": "XahHkOIroWd_ZpfhSpC1T", "ctx": null, - "_testId": "urn:uuid:d6f76387-f252-4135-b079-3a9d02fd04a6", + "_testId": "urn:uuid:2c8a3e30-b083-4afb-86e3-3cdbade42a46", "cell": { "columnId": "SpruceID", "rowId": "If multiple schemas are present, validity is determined according to the processing rules outlined by each associated credentialSchema type property." @@ -18064,14 +20555,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60407, + "_idleStart": 43850, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 69, "state": "passed", - "speed": "slow" + "speed": "medium" } ] } @@ -18089,7 +20580,7 @@ { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18099,9 +20590,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:1eb8e34f-c0cf-43be-b7df-118530100e91", + "_testId": "urn:uuid:698d314a-dfb9-4ec1-9147-c37ee55d1c1a", "cell": { "columnId": "apicatalog.com", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -18113,19 +20604,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60499, + "_idleStart": 43920, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 142, + "duration": 79, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18135,9 +20626,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:68551fec-b62b-42a9-b62a-9a9481d66534", + "_testId": "urn:uuid:6f40d240-8e0f-400a-b48f-8a07c293bd7a", "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." @@ -18149,19 +20640,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60641, + "_idleStart": 43999, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 512, + "duration": 421, "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -18171,9 +20662,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:e781be4f-556d-47fc-a462-254e59bd5f47", + "_testId": "urn:uuid:466c650f-5fec-424f-912b-e86c3c736373", "cell": { "columnId": "apicatalog.com", "rowId": "Each refreshService value MUST specify its type." @@ -18185,12 +20676,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61152, + "_idleStart": 44420, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 299, "state": "failed", "err": { "generatedMessage": false, @@ -18201,7 +20692,7 @@ { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18211,9 +20702,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:75ff17e6-ded5-4cb1-b570-41e3c3011493", + "_testId": "urn:uuid:ef3acec5-bf5a-4d6f-80c9-582b4f141dfc", "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." @@ -18225,19 +20716,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61265, + "_idleStart": 44720, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 128, "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 await 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, @@ -18247,9 +20738,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:aa5d43e1-c04f-4734-844b-4933ea40f72f", + "_testId": "urn:uuid:c84919e6-2af5-4d7b-902c-900cd1781e8b", "cell": { "columnId": "apicatalog.com", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -18261,12 +20752,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61381, + "_idleStart": 44849, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 184, "state": "failed", "err": { "generatedMessage": false, @@ -18277,7 +20768,7 @@ { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18287,9 +20778,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:bef1b525-f679-4e25-9de4-b0d983d785a0", + "_testId": "urn:uuid:9b95f9ef-986c-46ce-8bf4-a64b1ab053eb", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -18301,12 +20792,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61498, + "_idleStart": 45033, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 116, "state": "passed", "speed": "slow" } @@ -18327,7 +20818,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -18346,9 +20837,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "YWz1eWUrRwsSnkJ_A1_FR", + "parent": "QslTrhKzODwm46ZDAO5pP", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:e4859fb4-a6ba-457e-8950-f5938bc6f56c" + "_testId": "urn:uuid:5758907f-e2b9-4b54-8f2c-f025c645ec1d" }, { "title": "Digital Bazaar", @@ -18358,7 +20849,7 @@ { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18368,9 +20859,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:5cdb9dfb-00e7-4739-ac3f-ce298e7355d1", + "_testId": "urn:uuid:0595f85b-b5ad-4457-a73d-85deea1a8759", "cell": { "columnId": "Digital Bazaar", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -18382,19 +20873,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61611, + "_idleStart": 45150, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 197, + "duration": 105, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18404,9 +20895,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:fd8bb423-c716-406a-a538-efe045f5cae4", + "_testId": "urn:uuid:7d96d6aa-93ce-4eb3-8f39-c4ca507c3068", "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." @@ -18418,19 +20909,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61809, + "_idleStart": 45254, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 392, + "duration": 161, "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -18440,9 +20931,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:e5199194-82e2-4715-ab5b-0f6d93802f5e", + "_testId": "urn:uuid:b1545a27-d8c6-4d44-b279-d6315abafa36", "cell": { "columnId": "Digital Bazaar", "rowId": "Each refreshService value MUST specify its type." @@ -18454,12 +20945,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62201, + "_idleStart": 45416, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 210, + "duration": 78, "state": "failed", "err": { "generatedMessage": false, @@ -18470,7 +20961,7 @@ { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18480,9 +20971,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:1ef77324-ddd2-45a1-9a49-0d3bc4e479d5", + "_testId": "urn:uuid:fca357ef-3bac-4796-8e53-e8b6833ba5dd", "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." @@ -18494,19 +20985,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62412, + "_idleStart": 45494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 130, + "duration": 103, "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 await 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, @@ -18516,9 +21007,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:b6644355-1588-4efa-ac12-fbbf99b69402", + "_testId": "urn:uuid:b1d43180-9498-4113-acfe-94e415e8a0ed", "cell": { "columnId": "Digital Bazaar", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -18530,19 +21021,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62542, + "_idleStart": 45598, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 230, + "duration": 148, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18552,9 +21043,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:780e28af-bcf3-423e-a204-d7831dd84b5b", + "_testId": "urn:uuid:55d650d4-580f-44dc-9238-5a18a72676f0", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -18566,12 +21057,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62772, + "_idleStart": 45746, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 84, "state": "passed", "speed": "slow" } @@ -18592,7 +21083,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -18611,9 +21102,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "YWz1eWUrRwsSnkJ_A1_FR", + "parent": "QslTrhKzODwm46ZDAO5pP", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:f6518fe0-3919-4dcd-b071-68d8fd6c2031" + "_testId": "urn:uuid:f598cbcd-8a72-45c4-ae07-8bcb06792ec8" }, { "title": "Open Security and Identity", @@ -18623,7 +21114,7 @@ { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18633,9 +21124,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:4487cf06-f531-4e78-a2be-6510e1ec2675", + "_testId": "urn:uuid:fec11849-5196-470a-80fb-66f8655f1d61", "cell": { "columnId": "Open Security and Identity", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -18647,19 +21138,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62899, + "_idleStart": 45831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 233, + "duration": 133, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18669,9 +21160,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:7ae39fa7-a131-41a6-9192-fd5b16e47ec8", + "_testId": "urn:uuid:a96cda3c-c3a4-4e5f-8d1c-a7a744245817", "cell": { "columnId": "Open Security and Identity", "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." @@ -18683,19 +21174,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63132, + "_idleStart": 45964, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 224, + "duration": 102, "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -18705,9 +21196,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:a2cb5817-a5d1-43e4-9a2d-fa21887f2331", + "_testId": "urn:uuid:e5103c16-9c20-4814-b32c-a48b5437aef7", "cell": { "columnId": "Open Security and Identity", "rowId": "Each refreshService value MUST specify its type." @@ -18719,19 +21210,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63357, + "_idleStart": 46066, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 27, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18741,9 +21232,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:85df131f-3272-4539-a622-465c87272bfe", + "_testId": "urn:uuid:017f786e-8f45-4b1e-a1a0-12a89ee4526f", "cell": { "columnId": "Open Security and Identity", "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." @@ -18755,19 +21246,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63443, + "_idleStart": 46093, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 55, "state": "passed", - "speed": "slow" + "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 await 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, @@ -18777,9 +21268,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:8f020b6f-d597-4bd0-9670-03d8b08cda9e", + "_testId": "urn:uuid:553aaa3a-b180-4a3c-a549-471d755a674c", "cell": { "columnId": "Open Security and Identity", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -18791,19 +21282,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63552, + "_idleStart": 46149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 188, + "duration": 99, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18813,9 +21304,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:52f91117-c8ed-4e7d-8b50-115183fd6392", + "_testId": "urn:uuid:4008a572-63a4-4b3a-b23f-b737bf3a6d0c", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -18827,14 +21318,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63740, + "_idleStart": 46249, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 119, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -18853,7 +21344,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -18872,9 +21363,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "YWz1eWUrRwsSnkJ_A1_FR", + "parent": "QslTrhKzODwm46ZDAO5pP", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:370d0692-c8d6-4d33-9709-31c632b91c88" + "_testId": "urn:uuid:4572a19a-bdc1-49e4-9a5b-9cc3b857b894" }, { "title": "SpruceID", @@ -18884,7 +21375,7 @@ { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18894,9 +21385,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:242e960d-2e20-41b3-9128-ba8c98819a10", + "_testId": "urn:uuid:426cbaef-1ed8-47b6-a610-0b779347add6", "cell": { "columnId": "SpruceID", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -18908,19 +21399,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63859, + "_idleStart": 46307, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 185, + "duration": 131, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18930,9 +21421,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:63657309-30b8-49c8-8015-a7b65ddd5331", + "_testId": "urn:uuid:1cb43595-6eee-4f65-ae77-9a657916b739", "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." @@ -18944,19 +21435,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64044, + "_idleStart": 46439, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 187, + "duration": 135, "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -18966,9 +21457,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:400faffe-0c28-4321-aa42-912eb887602b", + "_testId": "urn:uuid:63643897-157d-4d00-b790-308d138cd6ce", "cell": { "columnId": "SpruceID", "rowId": "Each refreshService value MUST specify its type." @@ -18980,19 +21471,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64231, + "_idleStart": 46575, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 84, + "duration": 63, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19002,9 +21493,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:7d754355-22e8-432f-8e71-23fa04d1417c", + "_testId": "urn:uuid:89465806-858d-41fa-88aa-80766c05d3fd", "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." @@ -19016,19 +21507,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64315, + "_idleStart": 46639, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 70, "state": "passed", - "speed": "slow" + "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 await 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, @@ -19038,9 +21529,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:236f9365-db1e-454d-b896-ecff9d0e4367", + "_testId": "urn:uuid:081d9be4-8a53-41b7-aa88-4ba049822650", "cell": { "columnId": "SpruceID", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -19052,19 +21543,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64406, + "_idleStart": 46708, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 180, + "duration": 147, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19074,9 +21565,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:b34b88ee-cfed-4b3d-8135-c9fcc129fa97", + "_testId": "urn:uuid:c499c7e2-9e2c-42e9-97d2-47dd7acbdf78", "cell": { "columnId": "SpruceID", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -19088,14 +21579,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64586, + "_idleStart": 46856, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 68, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -19114,7 +21605,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "originalTitle": "\"before each\" hook: addPerTestMetadata", @@ -19133,9 +21624,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "YWz1eWUrRwsSnkJ_A1_FR", + "parent": "QslTrhKzODwm46ZDAO5pP", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "_testId": "urn:uuid:6bdd41c5-81fa-45f0-8694-b42d8d5dca8d" + "_testId": "urn:uuid:a453cf52-4ab0-49e5-8fa7-d74d2f1cc30d" } ], "root": false, @@ -19151,13 +21642,13 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "eMAI00kpsMj5GQrSs0Mou", + "parent": "tO7oPn3hHROfRhJ8rSSau", "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", "matrix": true, "report": true, "rowLabel": "Test Name", "columnLabel": "Implementer", - "_testId": "urn:uuid:ffc8437f-59f2-4db1-9e83-b3b7d8c9a144", + "_testId": "urn:uuid:c6b83c49-1e9a-4c8b-b950-7a138081b556", "columns": [ "apicatalog.com", "Digital Bazaar", @@ -19167,11 +21658,12 @@ "rows": [ { "id": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", + "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.", "cells": [ { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19181,9 +21673,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:1eb8e34f-c0cf-43be-b7df-118530100e91", + "_testId": "urn:uuid:698d314a-dfb9-4ec1-9147-c37ee55d1c1a", "cell": { "columnId": "apicatalog.com", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -19195,19 +21687,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60499, + "_idleStart": 43920, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 142, + "duration": 79, "state": "passed", "speed": "slow" }, { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19217,9 +21709,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:5cdb9dfb-00e7-4739-ac3f-ce298e7355d1", + "_testId": "urn:uuid:0595f85b-b5ad-4457-a73d-85deea1a8759", "cell": { "columnId": "Digital Bazaar", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -19231,19 +21723,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61611, + "_idleStart": 45150, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 197, + "duration": 105, "state": "passed", "speed": "slow" }, { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19253,9 +21745,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:4487cf06-f531-4e78-a2be-6510e1ec2675", + "_testId": "urn:uuid:fec11849-5196-470a-80fb-66f8655f1d61", "cell": { "columnId": "Open Security and Identity", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -19267,19 +21759,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62899, + "_idleStart": 45831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 233, + "duration": 133, "state": "passed", "speed": "slow" }, { "type": "test", "title": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context.", - "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 await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type-fail.json')));\n await assert.rejects(endpoints.issue(require(\n './input/credential-redef-type2-fail.json')));\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 '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 'Failed to reject a VC containing a redefiled protected term.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19289,9 +21781,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:242e960d-2e20-41b3-9128-ba8c98819a10", + "_testId": "urn:uuid:426cbaef-1ed8-47b6-a610-0b779347add6", "cell": { "columnId": "SpruceID", "rowId": "JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context." @@ -19303,12 +21795,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63859, + "_idleStart": 46307, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 185, + "duration": 131, "state": "passed", "speed": "slow" } @@ -19316,11 +21808,12 @@ }, { "id": "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.", + "link": "https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.", "cells": [ { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19330,9 +21823,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:68551fec-b62b-42a9-b62a-9a9481d66534", + "_testId": "urn:uuid:6f40d240-8e0f-400a-b48f-8a07c293bd7a", "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." @@ -19344,19 +21837,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 60641, + "_idleStart": 43999, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 512, + "duration": 421, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19366,9 +21859,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:fd8bb423-c716-406a-a538-efe045f5cae4", + "_testId": "urn:uuid:7d96d6aa-93ce-4eb3-8f39-c4ca507c3068", "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." @@ -19380,19 +21873,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61809, + "_idleStart": 45254, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 392, + "duration": 161, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19402,9 +21895,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:7ae39fa7-a131-41a6-9192-fd5b16e47ec8", + "_testId": "urn:uuid:a96cda3c-c3a4-4e5f-8d1c-a7a744245817", "cell": { "columnId": "Open Security and Identity", "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." @@ -19416,19 +21909,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63132, + "_idleStart": 45964, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 224, + "duration": 102, "state": "passed", "speed": "slow" }, { "type": "test", "title": "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.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n await endpoints.issue(require('./input/credential-refresh-ok.json'));\n await endpoints.issue(require('./input/credential-refreshs-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20refreshService%20property%20MUST%20be%20one%20or%20more%20refresh%20services%20that%20provides%20enough%20information%20to%20the%20recipient%27s%20software%20such%20that%20the%20recipient%20can%20refresh%20the%20verifiable%20credential.`;\n // TODO: given that these `refreshService` values are fake...they do\n // not test the \"provides enough information to...refresh\"\n // TODO: these can only be meaningfully tested on issued credentials\n // that provide *real* `refreshService` values (which will require\n // opt-in in test suite implementation configuration)\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refresh-ok.json')));\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-refreshs-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19438,9 +21931,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:63657309-30b8-49c8-8015-a7b65ddd5331", + "_testId": "urn:uuid:1cb43595-6eee-4f65-ae77-9a657916b739", "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." @@ -19452,12 +21945,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64044, + "_idleStart": 46439, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 187, + "duration": 135, "state": "passed", "speed": "slow" } @@ -19465,11 +21958,12 @@ }, { "id": "Each refreshService value MUST specify its type.", + "link": "https://w3c.github.io/vc-data-model/#terms-of-use:~:text=Each%20refreshService%20value%20MUST%20specify%20its%20type.", "cells": [ { "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -19479,9 +21973,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:e781be4f-556d-47fc-a462-254e59bd5f47", + "_testId": "urn:uuid:466c650f-5fec-424f-912b-e86c3c736373", "cell": { "columnId": "apicatalog.com", "rowId": "Each refreshService value MUST specify its type." @@ -19493,12 +21987,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61152, + "_idleStart": 44420, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 299, "state": "failed", "err": { "generatedMessage": false, @@ -19509,7 +22003,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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -19519,9 +22013,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:e5199194-82e2-4715-ab5b-0f6d93802f5e", + "_testId": "urn:uuid:b1545a27-d8c6-4d44-b279-d6315abafa36", "cell": { "columnId": "Digital Bazaar", "rowId": "Each refreshService value MUST specify its type." @@ -19533,12 +22027,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62201, + "_idleStart": 45416, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 210, + "duration": 78, "state": "failed", "err": { "generatedMessage": false, @@ -19549,7 +22043,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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -19559,9 +22053,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:a2cb5817-a5d1-43e4-9a2d-fa21887f2331", + "_testId": "urn:uuid:e5103c16-9c20-4814-b32c-a48b5437aef7", "cell": { "columnId": "Open Security and Identity", "rowId": "Each refreshService value MUST specify its type." @@ -19573,19 +22067,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63357, + "_idleStart": 46066, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 86, + "duration": 27, "state": "passed", - "speed": "slow" + "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 await assert.rejects(endpoints.issue(require(\n './input/credential-refresh-no-type-fail.json')));\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 }", "async": 0, "sync": true, "_timeout": 15000, @@ -19595,9 +22089,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:400faffe-0c28-4321-aa42-912eb887602b", + "_testId": "urn:uuid:63643897-157d-4d00-b790-308d138cd6ce", "cell": { "columnId": "SpruceID", "rowId": "Each refreshService value MUST specify its type." @@ -19609,24 +22103,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64231, + "_idleStart": 46575, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 84, + "duration": 63, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "id": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", + "link": "https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.", "cells": [ { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19636,9 +22131,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:75ff17e6-ded5-4cb1-b570-41e3c3011493", + "_testId": "urn:uuid:ef3acec5-bf5a-4d6f-80c9-582b4f141dfc", "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." @@ -19650,19 +22145,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61265, + "_idleStart": 44720, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 128, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19672,9 +22167,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:1ef77324-ddd2-45a1-9a49-0d3bc4e479d5", + "_testId": "urn:uuid:fca357ef-3bac-4796-8e53-e8b6833ba5dd", "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." @@ -19686,19 +22181,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62412, + "_idleStart": 45494, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 130, + "duration": 103, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19708,9 +22203,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:85df131f-3272-4539-a622-465c87272bfe", + "_testId": "urn:uuid:017f786e-8f45-4b1e-a1a0-12a89ee4526f", "cell": { "columnId": "Open Security and Identity", "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." @@ -19722,19 +22217,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63443, + "_idleStart": 46093, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 55, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await endpoints.issue(require(\n './input/credential-termsofuses-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#terms-of-use:~:text=The%20value%20of%20the%20termsOfUse%20property%20MUST%20specify%20one%20or%20more%20terms%20of%20use%20policies%20under%20which%20the%20creator%20issued%20the%20credential%20or%20presentation.`;\n await assert.doesNotReject(endpoints.issue(require(\n './input/credential-termsofuses-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19744,9 +22239,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:7d754355-22e8-432f-8e71-23fa04d1417c", + "_testId": "urn:uuid:89465806-858d-41fa-88aa-80766c05d3fd", "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." @@ -19758,24 +22253,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64315, + "_idleStart": 46639, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 91, + "duration": 70, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { "id": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id.", + "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.", "cells": [ { "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 await 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, @@ -19785,9 +22281,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:aa5d43e1-c04f-4734-844b-4933ea40f72f", + "_testId": "urn:uuid:c84919e6-2af5-4d7b-902c-900cd1781e8b", "cell": { "columnId": "apicatalog.com", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -19799,12 +22295,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61381, + "_idleStart": 44849, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 116, + "duration": 184, "state": "failed", "err": { "generatedMessage": false, @@ -19815,7 +22311,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 await 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, @@ -19825,9 +22321,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:b6644355-1588-4efa-ac12-fbbf99b69402", + "_testId": "urn:uuid:b1d43180-9498-4113-acfe-94e415e8a0ed", "cell": { "columnId": "Digital Bazaar", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -19839,19 +22335,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62542, + "_idleStart": 45598, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 230, + "duration": 148, "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 await 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, @@ -19861,9 +22357,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:8f020b6f-d597-4bd0-9670-03d8b08cda9e", + "_testId": "urn:uuid:553aaa3a-b180-4a3c-a549-471d755a674c", "cell": { "columnId": "Open Security and Identity", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -19875,19 +22371,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63552, + "_idleStart": 46149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 188, + "duration": 99, "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 await 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, @@ -19897,9 +22393,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:236f9365-db1e-454d-b896-ecff9d0e4367", + "_testId": "urn:uuid:081d9be4-8a53-41b7-aa88-4ba049822650", "cell": { "columnId": "SpruceID", "rowId": "Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id." @@ -19911,12 +22407,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64406, + "_idleStart": 46708, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 180, + "duration": 147, "state": "passed", "speed": "slow" } @@ -19924,11 +22420,12 @@ }, { "id": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", + "link": "https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.", "cells": [ { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19938,9 +22435,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "fC10zb32EkjhbbApBwj-h", + "parent": "TmNAo-4JSS4glJTRDU-gI", "ctx": null, - "_testId": "urn:uuid:bef1b525-f679-4e25-9de4-b0d983d785a0", + "_testId": "urn:uuid:9b95f9ef-986c-46ce-8bf4-a64b1ab053eb", "cell": { "columnId": "apicatalog.com", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -19952,19 +22449,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 61498, + "_idleStart": 45033, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 116, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -19974,9 +22471,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "UQpZyLGV7zd5ZvruBqXoF", + "parent": "wcQQvgCcrdzI--8xhHAM6", "ctx": null, - "_testId": "urn:uuid:780e28af-bcf3-423e-a204-d7831dd84b5b", + "_testId": "urn:uuid:55d650d4-580f-44dc-9238-5a18a72676f0", "cell": { "columnId": "Digital Bazaar", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -19988,19 +22485,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 62772, + "_idleStart": 45746, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 127, + "duration": 84, "state": "passed", "speed": "slow" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20010,9 +22507,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "gOlcLJr6wgCkH0r7iM7A5", + "parent": "sNez7sA3kzNRSf8sxo7OF", "ctx": null, - "_testId": "urn:uuid:52f91117-c8ed-4e7d-8b50-115183fd6392", + "_testId": "urn:uuid:4008a572-63a4-4b3a-b23f-b737bf3a6d0c", "cell": { "columnId": "Open Security and Identity", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -20024,19 +22521,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 63740, + "_idleStart": 46249, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 119, + "duration": 57, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", "title": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.", - "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await endpoints.issue(require('./input/credential-evidences-ok.json'));\n }", + "body": "async function() {\n this.test.link = `https://w3c.github.io/vc-data-model/#evidence:~:text=The%20value%20of%20the%20evidence%20property%20MUST%20be%20one%20or%20more%20evidence%20schemes%20providing%20enough%20information%20for%20a%20verifier%20to%20determine%20whether%20the%20evidence%20gathered%20by%20the%20issuer%20meets%20its%20confidence%20requirements%20for%20relying%20on%20the%20credential.`;\n // TODO: this does not test the statement above, only that `evidence`\n // can exist on an issued credential.\n await assert.doesNotReject(endpoints.issue(\n require('./input/credential-evidences-ok.json')));\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -20046,9 +22543,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js", - "parent": "aLTauqJw7Wtqlpw3xI4pP", + "parent": "fyHl0ES65P1U6Qye2U6Cp", "ctx": null, - "_testId": "urn:uuid:b34b88ee-cfed-4b3d-8135-c9fcc129fa97", + "_testId": "urn:uuid:c499c7e2-9e2c-42e9-97d2-47dd7acbdf78", "cell": { "columnId": "SpruceID", "rowId": "The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential." @@ -20060,14 +22557,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 64586, + "_idleStart": 46856, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 68, "state": "passed", - "speed": "slow" + "speed": "medium" } ] } @@ -20123,10 +22620,36 @@ }, "title": "VC v2.0 Interoperability Report", "stats": [ - "Tests passed 133/156 85%", - "Tests failed 23/156 15%", - "Failures 23", + "Tests passed 147/180 81%", + "Tests failed 33/180 19%", + "Failures 33", "Tests skipped 52", - "Total tests 208" - ] + "Total tests 232" + ], + "statusMarkLabels": { + "pending": { + "icon": "🚫", + "label": "Pending" + }, + "passed": { + "icon": "✓", + "label": "Passed" + }, + "failed": { + "icon": "❌", + "label": "Failed" + }, + "accessDenied": { + "icon": "⊘", + "label": "Access Denied" + }, + "timeout": { + "icon": "⏱", + "label": "Timeout" + }, + "notImplemented": { + "icon": "—", + "label": "Not Implemented" + } + } } \ No newline at end of file
JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context. + JSON-LD-based processors MUST produce an error when a JSON-LD context redefines any term in the active context. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
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. + 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. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
Each refreshService value MUST specify its type. + Each refreshService value MUST specify its type. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:910:11)"
-                    }
-
+
+ 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/10-vcdm2.js:1080:11)
+
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:910:11)"
-                    }
-
-
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:1080:11)
+
+
+
+
+
+
+
+
+
The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation. + The value of the termsOfUse property MUST specify one or more terms of use policies under which the creator issued the credential or presentation. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id. + Each termsOfUse value MUST specify its type, for example, IssuerPolicy, and MAY specify its instance id. +
- - -
{
-                      "name": "AssertionError",
-                      "message": "Missing expected rejection.",
-                      "stack": "AssertionError [ERR_ASSERTION]: Missing expected rejection.\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-data-model-2.0-test-suite/vc-data-model-2.0-test-suite/tests/10-vcdm2.js:925:9)"
-                    }
-
-
-
-
-
- -
-
-
-
- -
-
-
-
- +
+ 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/10-vcdm2.js:1097:9)
+
+
+
+
+
+
+
+
+
+
+
+
+
The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential. + The value of the evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential. +
- -
-
-
-
- -
-
-
-
- -
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+