@digitalcredentials/verifier-core
Version:
For verifying Verifiable Credentials in the browser, Node.js, and React Native.
80 lines (79 loc) • 2.69 kB
JavaScript
const expectedPresentationResult = {
"presentationResult": {
"signature": 'valid',
}
};
const expectedResult = {
"credential": {},
"log": [
{
"id": "valid_signature",
"valid": true
},
{
"id": "expiration",
"valid": true
},
{
"id": "registered_issuer",
"valid": true,
"foundInRegistries": [
"DCC Sandbox Registry"
],
"registriesNotLoaded": []
}
]
};
const fatalResult = {
credential: {},
errors: [
{
name: 'error name goes here, e.g., no_proof',
message: 'error message goes here'
}
]
};
const getCopyOfFatalResult = (credential, errorName, errorMessage) => {
const expectedResultCopy = JSON.parse(JSON.stringify(fatalResult));
expectedResultCopy.credential = credential;
expectedResultCopy.errors[0].name = errorName;
expectedResultCopy.errors[0].message = errorMessage;
return expectedResultCopy;
};
const getCopyOfExpectedResult = (credential, withStatus) => {
const expectedResultCopy = JSON.parse(JSON.stringify(expectedResult));
if (withStatus) {
expectedResultCopy.log?.push({
"id": "revocation_status",
"valid": true
});
}
expectedResultCopy.credential = credential;
return expectedResultCopy;
};
const getCopyOfExpectedVPResult = () => {
return JSON.parse(JSON.stringify(expectedPresentationResult));
};
const getExpectedVerifiedResult = ({ credential, withStatus }) => {
return getCopyOfExpectedResult(credential, withStatus);
};
const getExpectedUnverifiedResult = ({ credential, unVerifiedStep, withStatus }) => {
const expectedResult = getCopyOfExpectedResult(credential, withStatus);
const step = expectedResult.log?.find((entry) => entry.id === unVerifiedStep);
if (step)
step.valid = false;
return expectedResult;
};
const getExpectedFatalResult = ({ credential, errorName, errorMessage }) => {
const expectedResult = getCopyOfFatalResult(credential, errorName, errorMessage);
return expectedResult;
};
const getExpectedVerifiedPresentationResult = ({ credentialResults, unsigned = false }) => {
const expectedResult = getCopyOfExpectedVPResult();
expectedResult.credentialResults = credentialResults;
if (unsigned && expectedResult.presentationResult) {
expectedResult.presentationResult.signature = 'unsigned';
}
return expectedResult;
};
export { getExpectedVerifiedResult, getExpectedUnverifiedResult, getExpectedFatalResult, getExpectedVerifiedPresentationResult };