@gleif-it/vlei-verifier-workflows
Version:
Workflows for vLEI users and vLEI credentials for the vLEI-verifier service
30 lines (29 loc) • 1.59 kB
JavaScript
import { strict as assert } from 'assert';
import { VerifierClient } from 'vlei-verifier-client';
import { resolveEnvironment } from './utils/resolve-env.js';
import { CREDENTIAL_CRYPT_VALID, CREDENTIAL_VERIFIED, } from './utils/test-data.js';
export class CredentialVerification {
env;
verifierClient;
constructor() {
this.env = resolveEnvironment();
this.verifierClient = new VerifierClient(this.env.verifierBaseUrl);
}
async credentialPresentation(vleiUser, credId, expectedStatus = CREDENTIAL_CRYPT_VALID) {
const credential = JSON.parse(JSON.stringify(vleiUser.creds[credId]));
const presentationExpectedStatusCode = expectedStatus.status == CREDENTIAL_CRYPT_VALID.status ? 202 : 400;
await this.presentCredential(credential.cred, credential.credCesr, presentationExpectedStatusCode);
}
async credentialAuthorization(vleiUser, expectedStatus = CREDENTIAL_VERIFIED) {
const checkAidAuthExpectedStatus = expectedStatus.status == CREDENTIAL_VERIFIED.status ? 200 : 401;
await this.checkAidAuthStatus(vleiUser.ecrAid.prefix, checkAidAuthExpectedStatus);
}
async presentCredential(cred, credCesr, expected_status_code) {
const verifierResponse = await this.verifierClient.login(cred.sad.d, credCesr);
assert.equal(verifierResponse.code, expected_status_code);
}
async checkAidAuthStatus(aidPrefix, expected_status_code) {
const verifierResponse = await this.verifierClient.checkLogin(aidPrefix);
assert.equal(verifierResponse.code, expected_status_code);
}
}