mirror of
https://github.com/danbulant/jose
synced 2026-05-20 04:48:52 +00:00
94 lines
3 KiB
JavaScript
94 lines
3 KiB
JavaScript
import test from 'ava';
|
|
|
|
const root = !('WEBCRYPTO' in process.env) ? '#dist' : '#dist/webcrypto';
|
|
|
|
import(`${root}/util/decode_protected_header`).then(
|
|
({ default: decodeProtectedHeader }) => {
|
|
test('invalid inputs', (t) => {
|
|
t.throws(() => decodeProtectedHeader(null), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('.'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('ew..'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('bnVsbA..'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('W10..'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('...'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('ew....'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('bnVsbA....'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('W10....'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader('.....'), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader({ protected: null }), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader({ protected: 'ew' }), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader({ protected: 'bnVsbA' }), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader({ protected: 'W10' }), {
|
|
instanceOf: TypeError,
|
|
message: 'Invalid Token or Protected Header formatting',
|
|
});
|
|
|
|
t.throws(() => decodeProtectedHeader({}), {
|
|
instanceOf: TypeError,
|
|
message: 'Token does not contain a Protected Header',
|
|
});
|
|
|
|
t.deepEqual(decodeProtectedHeader('eyJhbGciOiJIUzI1NiJ9..'), { alg: 'HS256' });
|
|
t.deepEqual(decodeProtectedHeader('eyJhbGciOiJIUzI1NiJ9....'), { alg: 'HS256' });
|
|
t.deepEqual(decodeProtectedHeader({ protected: 'eyJhbGciOiJIUzI1NiJ9' }), { alg: 'HS256' });
|
|
});
|
|
},
|
|
(err) => {
|
|
test('failed to import', (t) => {
|
|
console.error(err);
|
|
t.fail();
|
|
});
|
|
},
|
|
);
|