Skip to content

Commit

Permalink
Merge pull request #123 from identity-com/make-evidence-optional
Browse files Browse the repository at this point in the history
Make evidences optional in idDocument credential
  • Loading branch information
lucmir authored Jul 18, 2019
2 parents c74057a + 9fbdbf1 commit db4589b
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 5 deletions.
24 changes: 22 additions & 2 deletions __test__/creds/VerifiableCredential.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1362,10 +1362,16 @@ describe('Unit tests for Verifiable Credentials', () => {
expect(createCredential).toThrowError('Evidence type is not an Array object');
});

it('Should create credential if non-required ucas are missing', () => {
it('Should create credential if all claims are provided', () => {
const type = new Claim('claim-cvc:Document.type-v1', 'passport', '1');
const number = new Claim('claim-cvc:Document.number-v1', '123', '1');
const name = new Claim('claim-cvc:Document.name-v1', { givenNames: 'Lucas' }, '1');
const gender = new Claim('claim-cvc:Document.gender-v1', 'M', '1');
const nationality = new Claim('claim-cvc:Document.nationality-v1', 'Brazilian', '1');
const placeOfBirth = new Claim('claim-cvc:Document.placeOfBirth-v1', 'Brazil', '1');
const issueCountry = new Claim('claim-cvc:Document.issueCountry-v1', 'Brazil', '1');
const dateOfExpiryValue = { day: 20, month: 3, year: 2020 };
const dateOfExpiry = new Claim('claim-cvc:Document.dateOfExpiry-v1', dateOfExpiryValue, '1');
const dateOfBirthValue = { day: 20, month: 3, year: 1978 };
const dateOfBirth = new Claim('claim-cvc:Document.dateOfBirth-v1', dateOfBirthValue, '1');
const evidences = new Claim('claim-cvc:Document.evidences-v1', {
Expand All @@ -1382,9 +1388,23 @@ describe('Unit tests for Verifiable Credentials', () => {
data: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
},
}, '1');
const ucas = [type, name, issueCountry, dateOfBirth, evidences];

const ucas = [
type, number, name, gender, issueCountry, placeOfBirth, dateOfBirth, nationality, dateOfExpiry, evidences,
];
const credential = new VC('credential-cvc:IdDocument-v1', '', null, ucas, '1');
expect(credential).toBeDefined();
});

it('Should create credential if non-required claims are missing', () => {
const type = new Claim('claim-cvc:Document.type-v1', 'passport', '1');
const name = new Claim('claim-cvc:Document.name-v1', { givenNames: 'Lucas' }, '1');
const issueCountry = new Claim('claim-cvc:Document.issueCountry-v1', 'Brazil', '1');
const dateOfBirthValue = { day: 20, month: 3, year: 1978 };
const dateOfBirth = new Claim('claim-cvc:Document.dateOfBirth-v1', dateOfBirthValue, '1');

const ucas = [type, name, issueCountry, dateOfBirth];
const credential = new VC('credential-cvc:IdDocument-v1', '', null, ucas, '1');
expect(credential).toBeDefined();
});

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@identity.com/credential-commons",
"version": "1.0.23",
"version": "1.0.24",
"author": "Identity.com Community",
"license": "MIT",
"description": "Verifiable Credential and Attestation Library",
Expand Down
2 changes: 2 additions & 0 deletions src/creds/VerifiableCredential.js
Original file line number Diff line number Diff line change
Expand Up @@ -737,9 +737,11 @@ VerifiableCredentialBaseConstructor.isMatchCredentialMeta = isMatchCredentialMet
VerifiableCredentialBaseConstructor.fromJSON = (verifiableCredentialJSON) => {
const definition = getCredentialDefinition(verifiableCredentialJSON.identifier,
verifiableCredentialJSON.version);

if (!verifyRequiredClaimsFromJSON(definition, verifiableCredentialJSON)) {
throw new Error('Missing required(s) claims');
}

const newObj = new VerifiableCredentialBaseConstructor(verifiableCredentialJSON.identifier,
verifiableCredentialJSON.issuer);
newObj.id = _.clone(verifiableCredentialJSON.id);
Expand Down
1 change: 0 additions & 1 deletion src/creds/definitions.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ const definitions = [
'claim-cvc:Document.name-v1',
'claim-cvc:Document.dateOfBirth-v1',
'claim-cvc:Document.issueCountry-v1',
'claim-cvc:Document.evidences-v1',
],
},
{
Expand Down

0 comments on commit db4589b

Please sign in to comment.