@microsoft/useragent-sdk
Version:
SDK for building decentralized identity wallets and enterprise agents.
53 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const JoseHelpers_1 = require("../../../../src/crypto/protocols/jose/JoseHelpers");
const CryptoProtocolError_1 = require("../../../../src/crypto/protocols/CryptoProtocolError");
const typescript_map_1 = require("typescript-map");
const KeyTypeFactory_1 = require("../../../../src/crypto/keys/KeyTypeFactory");
describe('JoseHelpers', () => {
// Disabling the test below to unblock identiverse demo. Refactoring
// required before we can re-enable or remove.
xit('should return header status from headerHasElements', () => {
const header = new typescript_map_1.TSMap();
expect(JoseHelpers_1.default.headerHasElements(header)).toBeFalsy();
// tslint:disable-next-line: no-backbone-get-set-outside-model
header.set('key', 'value');
expect(JoseHelpers_1.default.headerHasElements(header)).toBeTruthy();
});
it('should encode headers', () => {
const header = new typescript_map_1.TSMap();
let encoded = JoseHelpers_1.default.encodeHeader(header);
expect(encoded).toEqual('e30');
encoded = JoseHelpers_1.default.encodeHeader(header, false);
expect(encoded).toEqual('{}');
// tslint:disable-next-line: no-backbone-get-set-outside-model
header.set('key', 'value');
encoded = JoseHelpers_1.default.encodeHeader(header);
expect(encoded).toEqual('eyJrZXkiOiJ2YWx1ZSJ9');
encoded = JoseHelpers_1.default.encodeHeader(header, false);
expect(encoded).toEqual('{"key":"value"}');
});
it('should throw because header element does not exist', () => {
let throwed = false;
try {
JoseHelpers_1.default.getOptionsProperty('xxxx', undefined, undefined);
}
catch (err) {
throwed = true;
expect(err.message).toBe(`The property 'xxxx' is missing from options`);
expect(err.constructor === CryptoProtocolError_1.default).toBeTruthy();
}
expect(throwed).toBeTruthy();
});
it(`should return the key type for 'EC' via JWA`, () => {
expect(JoseHelpers_1.default.createTypeViaJwa('ES256K')).toEqual(KeyTypeFactory_1.KeyType.EC);
});
it(`should return the key type for 'RSA' via JWA`, () => {
expect(JoseHelpers_1.default.createTypeViaJwa('RS256')).toEqual(KeyTypeFactory_1.KeyType.RSA);
});
});
//# sourceMappingURL=JoseHelpers.spec.js.map