@3846masa/http-signature
Version:
Create / Verify HTTP Signatures (https://tools.ietf.org/html/draft-cavage-http-signatures-10)
53 lines • 3.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const Headers_1 = require("../Headers");
const createSignatureString_1 = require("../createSignatureString");
ava_1.default('createSignatureString should create Signature String', (t) => {
const headers = new Headers_1.Headers({
'(request-target)': 'post /foo?param=value&pet=dog',
Host: 'example.com',
Date: 'Sun, 05 Jan 2014 21:31:40 GMT',
'Content-Type': 'application/json',
Digest: 'SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=',
'Content-Length': '18',
});
const expected = `
(request-target): post /foo?param=value&pet=dog
host: example.com
date: Sun, 05 Jan 2014 21:31:40 GMT
`.trim();
const actual = createSignatureString_1.createSignatureString({
headers,
properties: ['(request-target)', 'host', 'date'],
});
t.is(actual, expected);
});
ava_1.default('createSignatureString should create Signature String from complex headers', (t) => {
const headers = new Headers_1.Headers({
'(request-target)': 'get /foo',
Host: 'example.org',
Date: 'Tue, 07 Jun 2014 20:51:35 GMT',
'X-Example': `Example header
with some whitespace.`,
'X-EmptyHeader': '',
'Cache-Control': ['max-age=60', 'must-revalidate'],
});
const expected = `
(request-target): get /foo
host: example.org
date: Tue, 07 Jun 2014 20:51:35 GMT
cache-control: max-age=60, must-revalidate
x-emptyheader:
x-example: Example header with some whitespace.
`.trim();
const actual = createSignatureString_1.createSignatureString({
headers,
properties: ['(request-target)', 'host', 'date', 'cache-control', 'x-emptyheader', 'x-example'],
});
t.is(actual, expected);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2lnbmF0dXJlU3RyaW5nLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvY3JlYXRlU2lnbmF0dXJlU3RyaW5nLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBdUI7QUFFdkIsd0NBQXFDO0FBQ3JDLG9FQUFpRTtBQUVqRSxhQUFJLENBQUMsc0RBQXNELEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUM7UUFDMUIsa0JBQWtCLEVBQUUsK0JBQStCO1FBQ25ELElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSwrQkFBK0I7UUFDckMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxNQUFNLEVBQUUsc0RBQXNEO1FBQzlELGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUc7Ozs7R0FJaEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVULE1BQU0sTUFBTSxHQUFHLDZDQUFxQixDQUFDO1FBQ25DLE9BQU87UUFDUCxVQUFVLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQ2pELENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBRUgsYUFBSSxDQUFDLDJFQUEyRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDdEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDO1FBQzFCLGtCQUFrQixFQUFFLFVBQVU7UUFDOUIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxXQUFXLEVBQUU7OEJBQ2E7UUFDMUIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsZUFBZSxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDO0tBQ25ELENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHOzs7Ozs7O0dBT2hCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFVCxNQUFNLE1BQU0sR0FBRyw2Q0FBcUIsQ0FBQztRQUNuQyxPQUFPO1FBQ1AsVUFBVSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUMsQ0FBQyJ9