Skip to content

Commit

Permalink
Test name/description on main credential object.
Browse files Browse the repository at this point in the history
  • Loading branch information
BigBlueHat committed Jun 11, 2024
1 parent e89e792 commit 324caa6
Show file tree
Hide file tree
Showing 13 changed files with 259 additions and 3 deletions.
44 changes: 41 additions & 3 deletions tests/10-vcdm2.js
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,48 @@ describe('Names and Descriptions', function() {
beforeEach(addPerTestMetadata);

const fixturePath = './input/names-and-descriptions';
// On the main credential object itself--as the spec describes
// @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.
it('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.', async function() {
await endpoints.issue(require(
`${fixturePath}/credential-name-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-name-optional-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-name-language-en-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-name-language-direction-en-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-multi-language-name-ok.json`));
await assert.rejects(endpoints.issue(require(
`${fixturePath}/credential-name-extra-prop-en-fail.json`)));
});
// @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.
it('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.', async function() {
await endpoints.issue(require(
`${fixturePath}/credential-description-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-description-optional-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-description-language-en-ok.json`));
await endpoints.issue(require(
// eslint-disable-next-line max-len
`${fixturePath}/credential-description-language-direction-en-ok.json`));
await endpoints.issue(require(
`${fixturePath}/credential-multi-language-description-ok.json`));
await assert.rejects(endpoints.issue(require(
`${fixturePath}/credential-description-extra-prop-en-fail.json`)));
});

// On `issuer` as in the example at https://w3c.github.io/vc-data-model/#example-usage-of-the-name-and-description-property-0
// @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.
it('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.', async function() {
await endpoints.issue(require(
`${fixturePath}/issuer-name-ok.json`));
await endpoints.issue(require(
Expand All @@ -330,9 +368,9 @@ describe('Names and Descriptions', function() {
`${fixturePath}/issuer-name-extra-prop-en-fail.json`)));
});
// @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.
it('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.', async function() {
it('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.', async function() {
await endpoints.issue(require(
`${fixturePath}/issuer-description-ok.json`));
await endpoints.issue(require(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"description": {
"@value": "An Example Credential",
"@language": "en",
"url": "did:example:credential"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"description": {
"@value": "An Example Credential",
"@language": "en",
"@direction": "ltr"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"description": {
"@value": "An Example Credential",
"@language": "en"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"description": "An Example Credential",
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"description": [{
"@value":"Dog",
"@language": "en"
}, {
"@value":"Chien",
"@language": "fr"
}, {
"@value":"Cane",
"@language": "it"
}],
"issuer": {
"id": "did:issuer:dog"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"name": [{
"@value":"Dog",
"@language": "en"
}, {
"@value":"Chien",
"@language": "fr"
}, {
"@value":"Cane",
"@language": "it"
}],
"issuer": {
"id": "did:issuer:dog"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"name": {
"@value":"Example Credential",
"@language": "en",
"url": "did:example:credential"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"name": {
"@value":"Example Credential",
"@language": "en",
"@direction": "ltr"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"name": {
"@value":"Example Credential",
"@language": "en"
},
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
15 changes: 15 additions & 0 deletions tests/input/names-and-descriptions/credential-name-ok copy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"name": "Example Credential",
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiableCredential"
],
"issuer": {
"id": "did:example:issuer"
},
"credentialSubject": {
"id": "did:example:subject"
}
}

0 comments on commit 324caa6

Please sign in to comment.