ontology-ts-sdk
Version:
Comprehensive TypeScript library for the Ontology blockchain.
50 lines (36 loc) • 2.04 kB
text/typescript
import { JwtHeader } from '../../src/credentials/jwt-header.class';
import { SignatureScheme } from '../../src/crypto';
import { isEqual } from './util-functions';
describe('test jwt header serialization', () => {
test('should correctly go trough serialization process without argument', () => {
const jwtHeader = new JwtHeader();
const serialized = jwtHeader.serialize(undefined, undefined);
expect(_isNotEmpty(serialized)).toBeTruthy()
const deserialized = JwtHeader.deserialize(serialized);
expect(isEqual(deserialized, jwtHeader)).toBeTruthy();
});
test('should correctly go trough serialization process with signature scheme', () => {
const jwtHeader = new JwtHeader(SignatureScheme.ECDSAwithSHA256.labelJWS)
const serialized = jwtHeader.serialize(SignatureScheme.ECDSAwithSHA256, undefined);
expect(_isNotEmpty(serialized)).toBeTruthy()
const deserialized = JwtHeader.deserialize(serialized);
expect(isEqual(deserialized, jwtHeader)).toBeTruthy();
});
test('should correctly go trough serialization process with public key and schema', () => {
const jwtHeader = new JwtHeader(SignatureScheme.ECDSAwithSHA256.labelJWS, 'public_key_id');
const serialized = jwtHeader.serialize(SignatureScheme.ECDSAwithSHA256, 'public_key_id');
expect(_isNotEmpty(serialized)).toBeTruthy()
const deserialized = JwtHeader.deserialize(serialized);
expect(isEqual(deserialized, jwtHeader)).toBeTruthy();
});
test('should correctly go trough serialization process with public key and without signature schema', () => {
const jwtHeader = new JwtHeader();
const serialized = jwtHeader.serialize(undefined,'public_key_id');
expect(_isNotEmpty(serialized)).toBeTruthy()
const deserialized = JwtHeader.deserialize(serialized);
expect(isEqual(deserialized, jwtHeader)).toBeTruthy();
})
});
function _isNotEmpty(value: string): boolean {
return value.length > 0;
}