From 9d926fd91c43606ba4f808bc4e4bf4d1be9497f2 Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Sun, 30 Jun 2024 19:17:40 +0000 Subject: [PATCH] Add assertion for mandatoryPointers and test for mandatoryPointers. --- tests/assertions.js | 9 +++++++++ tests/suites/create.js | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/tests/assertions.js b/tests/assertions.js index d82eee1..9dd2e48 100644 --- a/tests/assertions.js +++ b/tests/assertions.js @@ -100,6 +100,15 @@ export const shouldNotUseCborTags = ({proof}) => { should.exist(result, 'Expected proof to be decoded.'); }; +export const shouldHaveMandatoryPointers = ({proof}) => { + const {mandatoryPointers} = parseBaseProofValue({proof}); + should.exist(mandatoryPointers, 'Expected "mandatoryPointers" to exist.'); + mandatoryPointers.should.be.an( + 'Array', 'Expected "mandatoryPointers" to be an Array.'); + mandatoryPointers.length.should.be.gt( + 0, 'Expected at least one "mandatoyPointer".'); +}; + export const shouldBeMultibaseEncoded = async ({ expectedLength, prefixes = { diff --git a/tests/suites/create.js b/tests/suites/create.js index 33f5184..4ccf520 100644 --- a/tests/suites/create.js +++ b/tests/suites/create.js @@ -8,6 +8,7 @@ import { checkHmacKeyLength, shouldBeMultibaseEncoded, shouldBeProofValue, + shouldHaveMandatoryPointers, shouldNotUseCborTags, shouldVerifyDerivedProof } from '../assertions.js'; @@ -221,6 +222,13 @@ export function createSuite({ shouldNotUseCborTags({proof}); } }); + it('The transformation options MUST contain an array of mandatory ' + + 'JSON pointers (mandatoryPointers)', function() { + this.test.link = 'https://w3c.github.io/vc-di-bbs/#:~:text=The%20transformation%20options%20MUST%20contain%20an%20array%20of%20mandatory%20JSON%20pointers%20(mandatoryPointers)'; + for(const proof of bbsProofs) { + shouldHaveMandatoryPointers({proof}); + } + }); }); } });